如何删除从X开始直到结束的字符

时间:2015-09-02 05:40:25

标签: vb.net

我在VB.NET寻找一个能让我删除X直到字符串结尾的函数

假设 X = ":" ,这意味着应该删除从 : end of the string的内容。

示例1:

字符串:Cary:Bondoc

结果:Cary

示例2:

字符串:192.168.111.111:23512

结果:192.168.111.111

3 个答案:

答案 0 :(得分:4)

您可以使用此代码:

Dim str = "192.168.1.1:8080"
Dim x = ":"
Dim index = str.IndexOf(x)
If (index >= 0) Then
    str = str.Substring(0, index)
End If
MessageBox.Show(str)

结果将是192.168.1.1

关键是使用IndexOf和Substring方法。

String.IndexOf Method

  

报告指定的第一次出现的从零开始的索引   此实例中的Unicode字符或字符串。该方法返回   如果在此实例中找不到字符或字符串,则为-1。

String.Substring Method (Int32, Int32)

  

从此实例中检索子字符串。子串从a开始   指定的字符位置并具有指定的长度。

答案 1 :(得分:3)

为什么不使用简单的Split

Dim msg = "192.168.111.111:23512".Split(":")
MsgBox(msg(0))

msg = "Cary:Bondoc".Split(":")
MsgBox(msg(0))
<{>} Split :分隔符,并始终从数组中取出第一个。通过我,最简单的方式最短的方式。

或者,还有另一种方式:

Dim msg As String = "Cary:Bondoc"
StrRem(msg, ":")
MsgBox(msg)

Private Sub StrRem(ByRef msg As String, ByVal del As String)
    Dim res = msg.Split(del)
    msg = res(0)
End Sub

在子程序中使用ByRefmsg变量将随结果更新。所以,通过这种方式你不需要功能。

答案 2 :(得分:1)

另一种解决方案:

Dim msg As String
Dim X As String = ":"
msg = "192.168.111.111:23512"
MsgBox(CutString(msg, X))

功能如下:

Private Function CutString(ByVal str As String, ByVal X As Char) As String
    Dim l, p As Integer
    l = str.Length
    p = str.IndexOf(X)
    If p = -1 Then p = l
    CutString = str.Remove(p, l - p)
End Function