我试图创建一个函数,从一个数字(例如数字25
)中减去一个数字,以显示结果3
(因为5-2=3
) --从large
数字中减去smallest
--而从1
到9
的数字将保持不变,因此它只会考虑2位数字的内容。不幸的是,我的尝试失败了,我需要一点帮助。
Dim lines As String() = originalString.Split(CChar(Environment.NewLine))
For Each line As String In lines
Dim lineSum As String = 0
Dim index As Integer = 0
Dim numchars1 As Char
Dim numchars2 As Char
For Each numberChar As Char In line
index += 1
If index = 1 Then
numchars1 = numberChar
End If
If index >= 2 Then
numchars2 = numberChar
End If
Next
If Val(numchars1) AndAlso Val(numchars2) > 0 Then
If Val(numchars2) > Val(numchars1) Then
lineSum = Val(numchars2) - Val(numchars1)
ElseIf Val(numchars1) > Val(numchars2) Then
lineSum = Val(numchars1) - Val(numchars2)
End If
Else
lineSum = numchars1
End If
发布于 2022-11-12 13:28:09
您可以使用以下方法:
Public Shared Function Subtract(number As String) As Int32?
If Not number.All(AddressOf Char.IsDigit) Then Return Nothing
Dim allNumbers As Int32() = number.Select(Function(c) CInt(Char.GetNumericValue(c))).ToArray()
Dim highest = allNumbers.Max()
Return highest - (allNumbers.Sum() - highest)
End Function
请注意,"555“的结果为-5,因为5-5-5
发布于 2022-11-13 13:25:17
请注意,如果取差额的绝对值,则得到所需的数字:
Function AbsDiff(num As String) As Integer
Dim a = Convert.ToInt32(num(0))
Dim b = Convert.ToInt32(num(1))
Return Math.Abs(a - b)
End Function
您可能希望也可能不希望检查函数中的有效数据,或者在将其传递给函数之前检查它。
https://stackoverflow.com/questions/74413281
复制相似问题