在短划线(" - ")之后,我有一个带有数字的字符串.我想用这个数字增加1创建相同的字符串.很简单,但我想知道是否有更好的方法呢?谢谢!
string oldString = "BA-0001-3";
int lastIndex = oldString.LastIndexOf("-");
string oldNumber = oldString.SubString(lastIndex + 1);
string oldPartialString = oldString.SubString(0, lastIndex);
int newNumber = Convert.ToInt32(oldNumber) + 1;
string newString = oldPartialString + newNumber.ToString();
Run Code Online (Sandbox Code Playgroud)
例:
Regex.Replace("BA-0001-3", @"[A-Z]{2}-\d{4}-(\d+)",
m => (Convert.ToInt32(m.Groups[1].Value) + 1).ToString())
Run Code Online (Sandbox Code Playgroud)
我可能会用我的朋友string.Split:
string oldString = "BA-0001-3";
string[] parts = oldString.Split('-');
parts[parts.Length-1] = (Convert.ToInt32(parts[parts.Length-1])+1).ToString();
string newString = string.Join("-", parts);
Run Code Online (Sandbox Code Playgroud)
一个小的调整,可能会更快(通过只访问parts.Length和减去1一次 - 没有描述,所以它纯粹是一个猜测,它可能是一个边际差异),但最重要的是更强大(通过使用int.TryParse):
string oldString = "BA-0001-3";
string[] parts = oldString.Split('-');
int number;
int lastIndex = parts.Length-1;
parts[lastIndex] = (int.TryParse(parts[lastIndex], out number) ? ++number : 1).ToString();
string newString = string.Join("-", parts);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8310 次 |
| 最近记录: |