我目前正在使用vb.net express 2013.我正在使用Windows窗体应用程序。我需要从一串数字中的最后一个数字中取出第三个,而不会得到其他数字。我在这个网站Get last 5 characters in a string上发现了这个问题,这与我的需求非常接近。但是,这段代码会拉出最后5个字符中的所有字符,而在我的代码中,我需要第三个字符,而不需要任何其他数字。例如,如果你取数字" 917408,"我需要选择" 4。"有了这个,我将根据原始长号返回的数字创建一个IF语句。
'Ghost Floor
If CBJob1.Visible Then
If Shear1.Text >= 3 Then
Dim ghostshear1 As String = Shear1.Text
Dim len = ghostshear1.Length
Dim result = ghostshear1.Substring(len - 3, 1)
MsgBox(result)
End If
End If
答案 0 :(得分:4)
另一种方法是将字符串转换为整数然后获取100s列(任何数字中的第三列> = 100)。
Dim strValue As String = "917408"
Dim number As Int32 = Convert.ToInt32(strValue)
Dim hundredsDigit As Int32
hundredsDigit = (number / 100) Mod 10
如果您的号码已经是实际号码(而不是字符串),这将使您不必将其转换为字符串开头。
答案 1 :(得分:3)
要从字符串末尾开始计算特定位置的字符,您需要知道字符串的长度。这真的很容易。
Dim test = "917408"
if test.Length >= 3 then
Dim len = test.Length
Dim result = test.Substring(len - 3, 1)
End if
现在,您需要从结尾开始的第3个字符,因此您应该添加一个检查以避免在字符串少于3个字符的情况下引用否定位置
解决方案的关键是字符串类Substring方法,它采用两个参数:
答案 2 :(得分:2)
正如罗伯特哈维在上面的评论中所指出的,你只需要改变你的子串参数:
编辑:基于@ OP关于字符串在6到7个字符之间变化的评论:
Dim strValue As String = "917408"
Dim newValue As String
newValue = strValue.PadLeft(7, "0").Substring(4, 1)
MessageBox.Show(newValue)