我已经看到了很多关于如何在 vb 中拆分字符串的示例,但我无法让它们为我工作。
我试图解决的问题是我有一个座位号是"A1
",我想有 2 个变量,分别是"A
",然后是"1
"。(我也要将 A 变成一个值 1,所以如果你也知道它的 ASCII 转换,那将非常有帮助,但请记住,我也希望"B
"为 2,依此类推)。
If currentShowingID = BookingDetails(y).ShowingID Then
tempSeat = BookingDetails(y).SeatNO
Dim seat As String() = Split(tempSeat, "")
Dim down As String = seat(0)
Dim across As Integer = seat(1)
End If
ASCII 表具有它可以表示的每个字符的代码,因此...
- A => 65
- B => 66
- C => 67
- 。
- Z => 90
。这意味着,如果要获取一个数字来表示每个字符,从 1 开始,则必须从该字符的 ASCII 代码中减去 64。下面的代码应该适合您,假设您的座位始终有两个字符(例如:A1、C5 D9)......
Dim location As String
location = "B1"
Dim row As Char
Dim rowId As Int32
Dim number As Char
row = location.Chars(0)
rowId = Asc(row) - 64
number = location.Chars(1)
Console.WriteLine($"Location: {location} | Row: {row}({rowId}) | Number: {number} |")
Console.ReadKey()
。另一方面,如果您有来自 A-Z 的字母和可以大于 9 的数字(例如:A20、K15),我建议您走另一条路,例如......
Dim number As Int32
[...]
row = location.Chars(0)
rowId = Asc(row) - 64
number = 0
Int32.TryParse(location.Substring(1), number)
。测试一下,让我们知道!