我正在创建一个程序,当输入是非结构化时,它将为您提供总和的结果。请参阅以下内容:
输入:
whats 20 + 26
输出:
46
我已经知道如何搜索字符串中的文字(If text.IndexOf("hello") >= 0 Then
)......
我不知道如何使用两个整数作为加法方程式。
答案 0 :(得分:0)
以下是如何使用正则表达式开始执行此操作的快速示例。这对你投掷的任何东西都不会是防弹的,但它应该是一个良好的开端。
请务必将Imports System.Text.RegularExpressions
添加到.vb文件
'This string is an example input. It demonstrates that the method below
'will find the sum "2345+ 3256236" but will skip over things like
' if + .04g
' 1.23 + 4
' etc...
Dim input As String = _
"aoe%rdes 2345+ 3256236 if + .04g rcfo 8 3 . 1.23 + 4 the#r whuts"
Dim pattern As String = "\s\d+\s*\+\s*\d+(?=\s|$)"
For Each _match As Match In Regex.Matches(input, pattern)
Dim a = _match.Value.Split("+"c) 'Match extracts "2345+ 3256325"
Dim x As Integer
Dim y As Integer
If Integer.TryParse(a(0), x) AndAlso Integer.TryParse(a(1), y) Then
Console.WriteLine("Found the Sum : " & x & " + " & y)
Console.WriteLine("Sum is : " & x + y)
Else
Console.WriteLine("Match failed to parse")
End If
Next
正则表达式可以细分为
\s '(definitely) one whitespace
\d+ 'followed by any number of integer digits
\s* 'followed by (possibly) a whitespace
\+ 'followed by (definitely) a "+"
\s* 'followed by (possibly) a whitespace
\d+ 'followed by any number of integer digits
(?=\s|$) 'followed by (definitely) either a whitespace or EOL
在这里阅读更多内容:
Regular Expression Language - Quick Reference
答案 1 :(得分:-1)
将两个整数解析为两个整数变量 - 我们称之为x
和y
。然后添加他们的结果。
Dim x as Integer
Dim y as Integer
Dim result as Integer
'parse your integers- you indicate you already know how to do this
'add the results
result = x + y
'now print out the result