【问题标题】:Get last 5 characters in a string获取字符串的最后 5 个字符
【发布时间】:2010-05-11 18:44:32
【问题描述】:

我想从字符串中获取最后 5 位数字/字符。比如从"I will be going to school in 2011!",我想得到"2011!"

有什么想法吗?我知道 Visual Basic 有Right(string, 5);这对我不起作用并给了我一个错误。

【问题讨论】:

  • 错误是什么?也许也发布一个代码片段......
  • 您正在寻找Substring method
  • 我认为 Visual Studio 2008 中不再使用 Right() 函数了。
  • 在 .NET 4.0 中(使用 Visual Studio 2012)Right(myString, 5) 确实有效,我正在成功使用它。

标签: vb.net


【解决方案1】:
str.Substring(str.Length - 5)

【讨论】:

  • 只要确保上面的str.Length - 5 不会产生负值。
【解决方案2】:

错误检查:

result = str.Substring(Math.Max(0, str.Length - 5))

【讨论】:

    【解决方案3】:

    检查错误:

    Dim result As String = str
    If str.Length > 5 Then
        result = str.Substring(str.Length - 5)
    End If
    

    【讨论】:

      【解决方案4】:

      在 VB 2008 (VB 9.0) 及更高版本中,将 Right() 前缀为 Microsoft.VisualBasic.Right(string, number of characters)

      Dim str as String = "Hello World"

      Msgbox(Microsoft.VisualBasic.Right(str,5))

      “世界”

      Left() 也一样。

      【讨论】:

        【解决方案5】:

        老线程,但只是说:要使用经典的Left()Right()Mid(),现在你不需要写完整的路径(Microsoft.VisualBasic.Strings)。您可以像这样快速轻松地使用:

        Strings.Right(yourString, 5)
        

        【讨论】:

          【解决方案6】:

          在字符串长度小于 5 的情况下,这篇文章的接受答案会导致错误。所以我有一个更好的解决方案。我们可以使用这个简单的代码:

          If(str.Length <= 5, str, str.Substring(str.Length - 5))
          

          你可以用可变长度的字符串来测试它。

              Dim str, result As String
              str = "11!"
              result = If(str.Length <= 5, str, str.Substring(str.Length - 5))
              MessageBox.Show(result)
              str = "I will be going to school in 2011!"
              result = If(str.Length <= 5, str, str.Substring(str.Length - 5))
              MessageBox.Show(result)
          

          我发现的另一个简单但有效的解决方案:

          str.Substring(str.Length - Math.Min(5, str.Length))

          【讨论】:

            【解决方案7】:

            我打开这个帖子是为了寻找一个简单问题的快速解决方案,但我发现这里的答案要么没有帮助,要么过于复杂。实际上,获取字符串最后 5 个字符的最佳方法是使用 Right() 方法。这是一个简单的例子:

            Dim sMyString, sLast5 As String
            
            sMyString = "I will be going to school in 2011!"
            sLast5 = Right(sMyString, - 5)
            MsgBox("sLast5 = " & sLast5)
            

            如果您遇到错误,那么您的语法可能有问题。 此外,使用 Right() 方法,您不必担心超过或低于字符串长度。在我的示例中,您可以输入 10000 而不是 5,它只会 MsgBox 整个字符串,或者如果 sMyString 为 NULL 或“”,则消息框将弹出,什么都没有。

            【讨论】:

              【解决方案8】:
              Dim a As String = Microsoft.VisualBasic.right("I will be going to school in 2011!", 5)
              MsgBox("the value is:" & a)
              

              【讨论】:

                猜你喜欢
                • 2011-03-29
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-07-07
                • 2011-08-17
                • 2011-12-20
                相关资源
                最近更新 更多