Как убрать лидирующие нули с помощью С#

Вопрос:Как удалить начальные нули в строках с помощью С#? Например, в следующих числах я хотел бы удалить все начальные нули. 0001234 0000001234 00001234 Лучший ответ: Это действительно зависит от того, как долго NVARCHAR, так как некоторые из вышеперечисленных (особенно те, которые конвертируют через IntXX) методы не будут работать: String s = "005780327584329067506780657065786378061754654532164953264952469215462934562914562194562149516249516294563219437859043758430587066748932647329814687194673219673294677438907385032758065763278963247982360675680570678407806473296472036454612945621946"; Что-то вроде этого

Вопрос:

Как удалить начальные нули в строках с помощью С#?

Например, в следующих числах я хотел бы удалить все начальные нули.

0001234 0000001234 00001234 Лучший ответ:

Это действительно зависит от того, как долго NVARCHAR, так как некоторые из вышеперечисленных (особенно те, которые конвертируют через IntXX) методы не будут работать:

String s = «005780327584329067506780657065786378061754654532164953264952469215462934562914562194562149516249516294563219437859043758430587066748932647329814687194673219673294677438907385032758065763278963247982360675680570678407806473296472036454612945621946»;

Что-то вроде этого

String s =»0000058757843950000120465875468465874567456745674000004000″.TrimStart(new Char[] { ‘0’ } ); // s = «58757843950000120465875468465874567456745674000004000» Ответ №1

Это код, который вам нужен:

string strInput = «0001234»; strInput = strInput.TrimStart(‘0’); Ответ №2

Код, чтобы избежать возврата пустой строки (когда ввод похож на “00000” ).

string myStr = «00012345»; myStr = myStr.TrimStart(‘0’); myStr = myStr.Length > 0 ? myStr : «0»; Ответ №3

return numberString.TrimStart(‘0’);

Ответ №4

TryParse работает, если ваш номер меньше Int32.MaxValue. Это также дает вам возможность обрабатывать сильно форматированные строки. Работает так же для Int64.MaxValue и Int64.TryParse.

int number; if(Int32.TryParse(nvarchar, out number)) { // etc… number.ToString(); }Ответ №5

Использование следующего вернет один 0, когда на входе все 0.

string s = «0000000» s = int.Parse(s).ToString(); Ответ №6

Это регулярное выражение позволяет избежать неверного результата с цифрами, которые состоят только из нулей “0000”, и работают с цифрами любой длины:

using System.Text.RegularExpressions; /* 00123 => 123 00000 => 0 00000a => 0a 00001a => 1a 00001a => 1a 0000132423423424565443546546356546454654633333a => 132423423424565443546546356546454654633333a */ Regex removeLeadingZeroesReg = new Regex(@»^0+(?=d)»); var strs = new string[] { «00123», «00000», «00000a», «00001a», «00001a», «0000132423423424565443546546356546454654633333a», }; foreach (string str in strs) { Debug.Print(string.Format(«{0} => {1}», str, removeLeadingZeroesReg.Replace(str, «»))); }

И это регулярное выражение удалит ведущие нули в любом месте строки:

new Regex(@»(?<!d)0+(?=d)»); // «0000123432 d=0 p=002 3?0574 m=600» // => «123432 d=0 p=2 3?574 m=600″ Ответ №7Regex rx = new Regex(@»^0+(d+)$»); rx.Replace(«0001234″, @»$1»); // => «1234» rx.Replace(«0001234000″, @»$1»); // => «1234000» rx.Replace(«000″, @»$1»); // => «0» (TrimStart will convert this to «») // usage var outString = rx.Replace(inputString, @»$1″);

Оцените статью
Добавить комментарий