una ultimo recortar quitar izquierda especiales espacios eliminar ejemplos derecha ceros caracteres caracter cadena c#

ultimo - recortar string c#



Cómo eliminar los ceros líderes (7)

Código para evitar devolver una cadena vacía (cuando la entrada es como "00000").

string myStr = "00012345"; myStr = myStr.TrimStart(''0''); myStr = myStr.Length > 0 ? myStr : "0";

¿Cómo eliminar los ceros a la izquierda en el tipo de datos nvarchar usando C #?

Por ejemplo, en los siguientes números, me gustaría eliminar los ceros a la izquierda.

0001234 0000001234 00001234


El uso de lo siguiente devolverá un único 0 cuando la entrada sea todo 0.

string s = "0000000" s = int.Parse(s).ToString();


Esta Regex le permite evitar resultados erróneos con dígitos que consisten únicamente en ceros "0000" y trabajan en dígitos de cualquier longitud:

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, ""))); }

Y esta expresión regular eliminará ceros a la izquierda en cualquier lugar dentro de la cuerda:

new Regex(@"(?<!/d)0+(?=/d)"); // "0000123432 d=0 p=002 3?0574 m=600" // => "123432 d=0 p=2 3?574 m=600"


Este es el código que necesitas:

string strInput = "0001234"; strInput = strInput.TrimStart(''0'');


Realmente depende de cuánto tiempo esté el NVARCHAR, ya que algunos de los métodos anteriores (especialmente los que se convierten a través de IntXX) no funcionarán para:

String s = "005780327584329067506780657065786378061754654532164953264952469215462934562914562194562149516249516294563219437859043758430587066748932647329814687194673219673294677438907385032758065763278963247982360675680570678407806473296472036454612945621946";

Algo como esto

String s ="0000058757843950000120465875468465874567456745674000004000".TrimStart(new Char[] { ''0'' } ); // s = "58757843950000120465875468465874567456745674000004000"


TryParse funciona si su número es inferior a Int32.MaxValue . Esto también le da la oportunidad de manejar cadenas mal formateadas. Funciona igual para Int64.MaxValue e Int64.TryParse .

int number; if(Int32.TryParse(nvarchar, out number)) { // etc... number.ToString(); }


return numberString.TrimStart(''0'');