vb.net 增加带前缀的字符串

vb.net increment string with prefix

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

我有一个字符串,其中有一个字符串,然后是一个破折号,然后是一个数字,例如"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。

有什么想法吗?

您可以使用标准的 Substring 方法指向数字开始的部分,将其转换为整数并添加您的增量。 return 前缀为 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

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

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