這段代碼有效,如果它是例如我有一個數字14
,它會給出1 4=5
但如果我有,例如,78
結果將是7 8=15
并且我希望顯示1 5=6
,所以它會是6
,而不是15
。那我該如何解決呢?
Dim lines As String() = originalString.Split(CChar(Environment.NewLine))
For Each line As String In lines
Dim lineSum As String = Nothing
For Each numberChar As Char In line
If Asc(numberChar) >= 48 AndAlso Asc(numberChar) < 58 Then 'making sure this is a number and nothing else
lineSum = Asc(numberChar) - 48 'using the ascii chart to determine the value tu add
End If
Next
If results <> "" Then results &= vbNewLine
results &= lineSum.ToString
Next
uj5u.com熱心網友回復:
您可以使用這種遞回方法:
Public Shared Function GetSum(number As String, Optional maxDigits As Int32? = Nothing) As Int32?
If Not number.All(AddressOf Char.IsDigit) Then Return Nothing
Dim sum = number.Sum(AddressOf Char.GetNumericValue)
If(Not maxDigits.HasValue Orelse sum.ToString().Length <= maxDigits) Then Return sum
Return GetSum(sum.ToString(), maxDigits)
End Function
用你的樣品:
Sub Main
Dim sum1 As Int32? = GetSum("14", 1)
Dim sum2 As Int32? = GetSum("78", 1)
Console.WriteLine("Sum of 14: " & sum1)
Console.WriteLine("Sum of 78: " & sum2)
End Sub
輸出:
Sum of 14: 5
Sum of 78: 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/536773.html
標籤:网络
上一篇:電腦優化與清理