1

我正在尝试获取分隔符“|”右侧的字符串 左边的任何东西都可以忽略。

我尝试了以下,但它给了我左边的值

  Dim s As String = "John Smith | 09F2"
    Console.WriteLine(s.Substring(0, s.IndexOf("|")))
    Console.WriteLine(s.Split(CChar("|"))(0))
    Console.ReadKey()

结果是:约翰·史密斯。我想要 09F2 值。

我还尝试了以下代码行:

   Dim strEmployeeInfo As String = cmbSelectEmployee.Text
        Dim employeeID = Microsoft.VisualBasic.Right(strEmployeeInfo, strEmployeeInfo.IndexOf("|"))

但结果是史密斯 | 09F2。同样,我只需要 09F2

4

4 回答 4

2

试试这个:

Console.WriteLine(s.Substring(s.IndexOf("|") + 1));
于 2013-08-21T02:19:15.177 回答
2

当您拆分|字符时,生成的数组将在第一个位置有“John Smith”,在第二个位置有“09F2”。所以你需要访问第二个位置。因为它是基于 0 的传入 1 来访问第二个位置。接下来,修剪结果以去除任何额外的空格:

Dim s As String = "John Smith | 09F2"
Dim split As String() = s.Split("|"c)
Dim result As String = split(1).Trim()
于 2013-08-21T02:22:06.540 回答
2

假设您有多个“|” 在你的字符串中,你想要最后一个“|”之后的最后一部分,你可以使用它,它也适用于上面的例子:

Dim SArray() As String = s.Split("|"c);
//if necessary, check the length of SArray() for correctness
Console.WriteLine(SArray(SArray.Length - 1));
于 2013-08-21T02:26:34.577 回答
1

我会这样做:

Dim s As String = "John Smith | 09F2"
Console.WriteLine(s.Split("|").Last().Trim())
于 2013-08-21T02:31:55.903 回答