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
我确定以前有人问过这个问题,但我找不到我要找的确切内容。
我有一个字符串,其中有一个字符串,然后是一个破折号,然后是一个数字,例如"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