【问题标题】:vb.net increment string with prefix带有前缀的vb.net增量字符串
【发布时间】:2015-04-28 04:06:52
【问题描述】:

我确定以前有人问过这个问题,但我找不到确切的答案。

我有一个字符串,它有一个字符串,然后是一个破折号,然后是一个数字,例如“TERM-01”恰好是配电盘中电气端子的名称。 我想将其增加到“TERM-02”、“TERM-03”等。

我想出了这个:

TermNo = CStr(Mid(TermNo, 1, InStr(TermNo, "-")) & (CInt(Mid(TermNo, InStr(TermNo, "-") + 1, TermNo.Length - InStr(TermNo, "-")) + 1)))

这似乎工作得很好,但是我需要增加包括 0 在内的数字,所以 08、09、10 而不是 8、9、10。

有什么想法吗?

【问题讨论】:

    标签: vb.net string integer increment


    【解决方案1】:

    您可以使用标准的 Substring 方法指向数字开始的部分,将其转换为整数并添加您的增量。返回带有 0 前缀的数字的技巧是使用 format specifier D2 完成的

    Dim TermNo = "TERM-01"
    for i = 1 To 15
        Dim value = "TERM-" + (Convert.ToInt32( _ 
                               TermNo.SubString( _ 
                               TermNo.IndexOf("-"))) + i) _
                               .ToString("D2")
        Console.WriteLine(value)
    Next
    

    这也可以使用 Regex 表达式以更易读的方式编写

    Dim TermNo = "TERM-01"
    for i = 1 To 15
        Console.WriteLine(Regex.Replace(TermNo, "\d+", i.ToString("D2")))
    Next
    

    【讨论】:

    • 很高兴看到有人仍在使用格式说明符!
    【解决方案2】:

    如果您总是有破折号,只需将破折号上的字符串分开并单独处理。

    https://msdn.microsoft.com/en-us/library/system.string.split%28v=vs.110%29.aspx

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 1970-01-01
      • 2022-06-10
      • 2011-03-12
      • 2016-03-24
      • 2016-06-15
      • 1970-01-01
      • 2016-04-28
      相关资源
      最近更新 更多