2013-08-21 125 views
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

回答

1

当你分割的|字符,则生成的数组将“约翰·史密斯”在第一位置,而“09F2”在第二位置。所以你需要访问第二个位置。因为它是基于0的传球进入第二个位置。接下来,修剪结果以摆脱任何附加空间:

Dim s As String = "John Smith | 09F2" 
Dim split As String() = s.Split("|"c) 
Dim result As String = split(1).Trim() 
2

试试这个:

Console.WriteLine(s.Substring(s.IndexOf("|") + 1)); 
1

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

Dim SArray() As String = s.Split("|"c); 
//if necessary, check the length of SArray() for correctness 
Console.WriteLine(SArray(SArray.Length - 1)); 
0

我会去这个:

Dim s As String = "John Smith | 09F2" 
Console.WriteLine(s.Split("|").Last().Trim())