C# инкрементная строка, содержащая число с особыми случаями ?
привет,
у меня есть строка, как А02540 или А02540а или 00A2052255c025 или 00501C2326 или 00801 , я хочу увеличить любой из них или любую другую строку один за другим (автоматическое увеличение), чтобы стать :
А02541 или А02540а1 или 00A2052255c026 или 00501C2327 или 00808
Что я уже пробовал:
string intPart = string.Join("", serialTXT.Reverse().TakeWhile(char.IsDigit).Reverse()); Int64 intP = Int64.Parse(intPart); string newString = serialTXT.Remove(serialTXT.Length - intPart.Length) + (intP < 10 ? "0" + (intP + endnumber) : (intP + endnumber).ToString());
но в этом случае он игнорирует "ноль" 00801 и преобразовать его в 801
Richard MacCutchan
если строка, представляющая число, содержит ведущие нули, то вам нужно подсчитать их перед выполнением преобразования. Затем вы можете добавить их обратно в созданную вами новую строку.
Golden Basim
но эта проблема не возникает ни с одной строкой , содержащей букву типа (00501C2326), как это определить
Richard MacCutchan
Вам нужно создать алгоритм, который может работать для каждого типа чисел. Если часть его хранится в виде строки, то начальные нули будут сохранены. Но если вся строка числовая и вы преобразуете ее в целое число, то начальные нули будут потеряны.
Gerry Schmitz
Что о aa9?
Patrice T
Вы уверены насчет 00801 => 00808 ?
Что будет дальше для A99 ?