可以说我有一条短信 Howard Johnson, 21 (USA)
我想获取文本的子字符串Johnson
。
我可以使用InStr
和Microsoft.VisualBasic.Left
或进行此操作Mid
,但是我总是觉得此方法很繁琐,我想知道是否还有另一种更简单的方法可以执行此操作。
Dim myText As String = "Howard Johnson, 21 (USA)"
Dim textIWant As String = InStr(1, myText, Chr(32))
Dim LastName As String = Mid(myText, textIWant + 1, textIWant)
'Output: Johnson
有什么建议么?
尝试使用此代码-它使用a的IndexOf
功能在其中String
定位字符的第一个实例String
。
对于姓氏,示例代码将查找第一个空格和第一个逗号,并在其间插入文本。假定姓总是以这种方式定界。
对于该国家/地区,示例代码将查找第一个(和最后一个),并在中间插入文本。假设该国始终处于方括号内。
这是代码:
Sub Main()
Dim Input As String
Dim Surname As String
Dim Country As String
Input = "Howard Johnson, 21 (USA)"
Surname = Input.Substring(Input.IndexOf(" ") + 1, Input.IndexOf(",") - Input.IndexOf(" ") - 1)
Country = Input.Substring(Input.IndexOf("(") + 1, Input.IndexOf(")") - Input.IndexOf("(") - 1)
Console.WriteLine(Surname)
Console.WriteLine(Country)
Console.ReadKey()
End Sub
它也适用于姓氏中有空格的人,例如:
Input = "Albert del Rosario, 75 (Phillipines)"
Surname = Input.Substring(Input.IndexOf(" ") + 1, Input.IndexOf(",") - Input.IndexOf(" ") - 1)
将输出
del Rosario
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句