在 vb.net 中获取字符串的子字符串

getting a substring of a string in vb.net

我有这种字符串

姓氏,名字中间名

我希望将它们放在 3 个不同的文本框中

名字 中间名字 姓

但我好像不太对劲,

我的项目有这些代码:

Name = Me.dtgEmplist.CurrentRow.Cells(1).Value

fname = Name.Substring(Name.IndexOf(" ")).Trim
mname = fname.Substring(fname.IndexOf(" ")).Trim
lname = Name.Substring(0, Name.IndexOf(",")).Trim

LastName 和 middlenames 我好像都正确获取了,但是 firstname 很棘手,我只成功获取了这种输出

名字中间名 中间名字 姓

有人能帮帮我吗?我已经尝试了这么久。

编辑:它们取自数据网格视图。并且 datagridview 视图是从存储过程填充的

使用 string.Split() 可能更容易:https://msdn.microsoft.com/en-us/library/tabh47cf(v=vs.110).aspx

您可以先在逗号上拆分整个字符串:

string[] splitted
string[] splitted2
splitted = Name.Split(New Char() {","c})

fName = splitted(0).Trim
splitted2  = splitted(1).Split(New Char() {" "c}

mname = splitted2(0).Trim()
lname = splitted2(1).Trim()

按照大家说的Split方法应该很简单:

Name = Me.dtgEmplist.CurrentRow.Cells(1).Value

Dim FirstSplit as String()
FirstSplit = Name.Split(",")
fname = FirstSplit(0).Trim()

Dim SecondSplit as String() = (FirstSplit(1).Trim()).Split()

mname = SecondSplit(0).Trim
lname = SecondSplit(1).Trim

首先,您拆分为“,”字符,然后拆分为 space。也许您还应该检查数组维度。