Vb.net 连接三个字符串以创建一个字符串

Vb.net 连接三个字符串以创建一个字符串,vb.net,Vb.net,我一直在为班级做这个作业,但在从其他三个字符串创建字符串时遇到了一个问题。它根据名字和姓氏中的第一个字母以及邮政编码的最后3个数字创建发票号码 Dim split As String() = txtName.Text.Split(", ") Dim last As String = split(0) Dim first As String = split(1) Dim invFirst = first.Substring(0, 1) Dim invLast = last.Substring(0

我一直在为班级做这个作业,但在从其他三个字符串创建字符串时遇到了一个问题。它根据名字和姓氏中的第一个字母以及邮政编码的最后3个数字创建发票号码

Dim split As String() = txtName.Text.Split(", ")
Dim last As String = split(0)
Dim first As String = split(1)

Dim invFirst = first.Substring(0, 1)
Dim invLast = last.Substring(0, 1)
Dim invZip = cityState.Substring(cityState.Length - 3)
Dim invNumber = invFirst + invLast + invZip

lstInvoice.Items.Add("Invoice Number: " + invNumber)
它不会打印出AB123,而是只打印出B123。我尝试过使用+和&甚至厌倦了将所有组件转换为字符串,只是为了确保它没有试图将值视为数字或其他东西

我是否缺少刷新流或以不同方式强制转换流之类的内容?

Split()返回一个数组

所以你需要修剪琴弦。然后它就会起作用。

Split()返回一个数组

所以你需要修剪琴弦。然后它就会起作用。


我无法重现此行为。
first
last
的值是什么?如果使用显式类型(
Dim invFirst As String
)和
String.Concat
,会发生什么?“first”和“last”是像John和Smith这样的简单字符串。当我使用'Dim invFirst As String'或'String.Concat'时,它返回的方式与@DaiI相同,无法重现此行为。
first
last
的值是什么?如果使用显式类型(
Dim invFirst As String
)和
String.Concat
,会发生什么?“first”和“last”是像John和Smith这样的简单字符串。当我使用'Dim invFirst As String'或'String.Concat'时,它的返回方式与@dai的返回方式相同,而@dai似乎起到了作用。第一次使用Split()使我措手不及。我假设它实际上首先看到的是
,但是因为有一个逗号,然后是一个空格,所以它只看到了空格,没有修剪
Smith,John
将是输入的内容,因此我认为放置
,“
将处理空间。@Ross Presser:谢谢您的编辑。但现在我很困惑。MSDN链接有“分隔符数组”部分,它们显示了如果使用2字符字符串作为分隔符会发生什么。所以我的Trim()不再有意义了。原始代码应该可以工作。我怎么会觉得它像个.NET漏洞?!这似乎奏效了。第一次使用Split()使我措手不及。我假设它实际上首先看到的是
,但是因为有一个逗号,然后是一个空格,所以它只看到了空格,没有修剪
Smith,John
将是输入的内容,因此我认为放置
,“
将处理空间。@Ross Presser:谢谢您的编辑。但现在我很困惑。MSDN链接有“分隔符数组”部分,它们显示了如果使用2字符字符串作为分隔符会发生什么。所以我的Trim()不再有意义了。原始代码应该可以工作。我怎么会觉得它像个.NET漏洞?!
Dim split As String() = txtName.Split(",")
Dim last As String = split(0).Trim()
Dim first As String = split(1).Trim()