VB.NET:转换包含“的字符串”;“姓氏,姓氏”;至;Firstname Lastname";

VB.NET:转换包含“的字符串”;“姓氏,姓氏”;至;Firstname Lastname";,vb.net,string,Vb.net,String,我正在尝试将包含某人姓名的字符串“Last,First”转换为“First-Last” 我现在就是这样做的: name = name.Trim name = name.Substring(name.IndexOf(",") + 1, name.Length) & " " & name.Substring(0, name.IndexOf(",") - 1) 当我执行此操作时,会出现以下错误: ArgumentOutOfR

我正在尝试将包含某人姓名的字符串“Last,First”转换为“First-Last”

我现在就是这样做的:

name = name.Trim
name = name.Substring(name.IndexOf(",") + 1, name.Length) & " " & name.Substring(0, name.IndexOf(",") - 1)
当我执行此操作时,会出现以下错误:

ArgumentOutOfRangeException未处理

索引和长度必须引用字符串中的位置

Dim originalName As String = "Last,First"
Dim parts = name.Split(","C)
Dim name As String = parts(1) & "  " & parts(0)
参数名称:长度


有人能解释一下我为什么会出现这个错误,以及我应该怎么做吗?

您在这个问题上遇到了错误:

name.Substring(name.IndexOf(",") + 1, name.Length)
name.Length
应与逗号前的字符串长度相减

最好的方法是拆分字符串

Dim oFullname as string = "Last, First"
Dim oStr() as string = oFullname.split(","c)
oFullname = oStr(1).trim & " " & oStr(0).trim
MsgBox (oFullname)

简单地说,您只需要拆分字符串

Dim originalName As String = "Last,First"
Dim parts = name.Split(","C)
Dim name As String = parts(1) & "  " & parts(0)
的第二个参数是子字符串的长度,而不是结束位置。因此,如果使用n>0(这将是子字符串的整点)执行
str.Substring(n,str.Length)
,您总是会越界


您需要从第一个子字符串中的
name.Length
中减去
name.IndexOf(“,”)+1
。或者像其他人建议的那样拆分字符串。

如果您使用Unix命令行,比如Mac上的终端,您可以这样做:

Last1, First1
Last2, First2
Last3, First3
假设您有一个文件,其中包含最后一个逗号空格第一个类型名称,如下所示:

Last1, First1
Last2, First2
Last3, First3
好的,现在让我们将其保存为
last\u comma\u space\u first.txt
。此时,您可以使用我针对您的特定问题提出的命令:

sed -E 's/([A-Za-z0-9]+), ([A-Za-z0-9]+)/\2 \1/g' last_comma_space_first.txt > first_space_last.txt
--->>>滚动-->>>

你完了!现在,检查
first\u space\u last.txt
文件您应该获得以下信息:

First1 Last1
First2 Last2
First3 Last3

告诉你的朋友。。。或者不要…。

这将保持海报的格式

Name = "Doe,John"
Name = Replace(Name.Substring(Name.IndexOf(","), Name.Length - Name.IndexOf(",")) & " " & Name.Substring(0, Name.IndexOf(",")), ",", "")

Result Name=“John Doe”

我不会投你反对票,因为你的答案是错误的。在Vb.net中,字符串的concatenation不使用
+
,而是使用
&
@johntotetwoo。他的答案实际上是正确的。您可以同时使用+和-,来将字符串与,是建议用于字符串的,但两者都是work@MarkHall是的,您可以同时使用这两种方法,但更推荐的做法是,选中这个@sleimanjneidi,这不会把它放回FirstName-LastName顺序吗?奥普想让它反过来!对不起,这里没有编译器。你们都是对的(稍微相关-拆分调用中的“c”是什么?我以前没有看到过(直到现在,在这个问题的所有答案中都没有看到)。它将字符串转换为字符。@HillBilly.Developer本例中的分隔符是
Char
数据类型的一个实例;因此它附加了文字类型character
c