从VB.NET中的字符串获取子字符串文本

am

可以说我有一条短信 Howard Johnson, 21 (USA)

我想获取文本的子字符串Johnson

我可以使用InStrMicrosoft.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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章