从vb.net中的一串数字中提取特定数字

时间:2014-09-22 19:16:00

标签: vb.net string if-statement integer

我目前正在使用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

3 个答案:

答案 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方法,它采用两个参数:

  • 一个起点(len - 3)
  • 要返回的字符数(在您的情况下为1)

答案 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)