2017-06-14 62 views
1

在Vb.net使用分割我有两个例子在最后冲刺

“hcg.com.ph?C402-10A-2012-06132017-22”

“hcg.com.?C3032 -1B-2012-06132017-1"

输出应该是

hcg.com.ph?C402-10A-2012-06132017

hcg.com.?C3032-1B-2012-06132017

,但我得到

hcg.com.ph?C402和hcg.com.?C3032

暗淡FinalSplt( )作为字符串 昏暗ItemBaseCode作为字符串

FinalSplt = value.ToString.Split( “ - ”)

ItemBaseCode = FinalSpl t(0)

如何拆分最后一个破折号?

+0

可能重复的[如何删除最后的字符串在破折号之前在破折号.....在vb.net sql](https://stackoverflow.com/questions/44534449/how-to-remove-最后在字符串在SQL之前破折号在VB - NET - SQL) – muffi

+0

另一个是为sqlserver这是为vb.net –

+1

尝试使用.LastIndexOf() – muffi

回答

-1

好的,没有实际编写代码,我可以看到你需要更有效地分割字符串。

首先,去掉引号。

其次,根据?标记拆分字符串。

取数组中的第二个字符串,并根据-标记拆分它。

现在你有一个所有部分的数组,加入这个数组除了最后一个元素。

加入与原始第一部分的新字符串。

如果需要的话加回引号。

+0

你能写它..因为我不熟悉分割使用数组 –

+0

[MSDN String.Split方法](https://msdn.microsoft.com/en-us/library/system.string.split(v = vs.110).aspx) – Mike

0

这是一些使用Substring和LastIndexOf的代码。

'test input 
    Dim si() As String = {"hcg.com.ph?C402-10A-2012-06132017-22", "hcg.com.?C3032-1B-2012-06132017-1"} 

    'use to verify 
    Dim sv() As String = {"hcg.com.ph?C402-10A-2012-06132017", "hcg.com.?C3032-1B-2012-06132017"} 

    For x As Integer = 0 To si.Length - 1 
     Dim s As String = si(x).Substring(0, si(x).LastIndexOf("-"c)) 
     'verify 
     If s = sv(x) Then 
      Stop 'verified 
     End If 
    Next 
+0

感谢你这么多..它帮助了我很多 –