C#生成下一个字母数字字符串序列
我想在C#windows应用程序中生成字母数字字符串的C#生成下一个字母数字字符串序列,c#,string,C#,String,我想在C#windows应用程序中生成字母数字字符串的下一个序列。检查maxnumber并生成下一个序列 例如 A10100001 => A10100002 => A10100003 => A10100004 ...... A10100999 => A10101001 ABC000001 => ABC000002 => ABC000003 => ABC000004 ...... ABC000999 => ABC001001 请帮助我,我
下一个序列。检查max
number并生成下一个序列
例如
A10100001 => A10100002 => A10100003 => A10100004 ...... A10100999 => A10101001
ABC000001 => ABC000002 => ABC000003 => ABC000004 ...... ABC000999 => ABC001001
请帮助我,我是编程新手…尝试使用正则表达式提取最后一个数字(我们必须递增):
或Regex.Replace
更简洁但可读性较差的版本:
测试:
如果您有一系列具有相同模式的项目,您可以使用Linq:
查找字符串中的第一个数字
分开
将第二部分解析为整数
增量
连接
请说明您在“AABC001Z99”中尝试了哪些内容,哪些内容不起作用。我本来希望是“AABC002A00”,但得到了意外的“AABC001Z100”:(有帮助吗?在我的代码中,我只增加了最后一个数字(99)(因此我们有100)。您可能希望将1添加到36个基数(0..9A..Z)中,这是一个不同的问题
private static string Next(string value) {
string number = Regex.Match(value, "[0-9]+$").Value;
return value.Substring(0, value.Length - number.Length) +
(long.Parse(number) + 1).ToString().PadLeft(number.Length, '0');
}
private static string Next(string value) {
return Regex.Replace(value, "[0-9]+$",
match => (long.Parse(match.Value) + 1).ToString($"D{match.Length}"));
}
// "abc0046"
Console.Write(Next("abc0045"));
// "abc0045xyz124" (please, notice, that it's the last 123 which is incremented)
Console.Write(Next("abc0045xyz123"));
string[] items = new string[] { "ABC001", "ABC105", "ABC024" };
// "ABC106"
Console.Write(Next(items.Max()));