2011-08-03 15 views

Odpowiedz

14

Najprostszym sposobem jest poprawna:

int.Parse(s).ToString(); 

wykończenia Metody wszystko powiedzie dla wejść „0000”, będą mogły powrócić pusty ciąg zamiast poprawnego „0”.

+0

+1 masz rację. Zrobiłem to, ponieważ sznur jest zawsze czymś w rodzaju 0012, a nie 0000. Nie usunąłbyś wiodącego zera od 0000. Chyba że chciałbyś, żeby było 0. –

+1

To nie zadziała w różnych przypadkach - ciąg zawiera znaki alfabetu, jest ciągiem znaków dziesiętnych lub jest liczbą całkowitą większą niż "Int32.MaxValue". –

+0

@KirkBroadhurst: "wiodące zera" to termin zwykle używany dla ciągów cyfr i nie zawiera zero w jednym miejscu. Poza tym przykładowe dane w pytaniu mają tylko cyfry. –

19

Spójrz na TrimStart:

numberString = numberString.TrimStart('0'); 

Od MSDN:

Sposób TrimStart usuwa z bieżącej ciąg wszystkie wiodące znaki, które są w parametrze trimChars. Operacja przycinania zatrzymuje się po napotkaniu znaku, który nie znajduje się w trimChars.

+0

+1 beat mnie do niego. –

+1

+1 Znacznie lepiej niż druga odpowiedź, która zakłada, że ​​wartość jest liczbą całkowitą; wartościami mogą być "0012ABC" lub "00999999999999999999", z których oba zawodzą z 'int.Parse'. –

+0

rozważ to ograniczenie (nie na temat, wiem) 'System.String TrimStart (Char []) 'jest obsługiwane tylko w LINQ do Entities, gdy nie ma znaków wykończenia określonych jako argumenty' –

2

Jeśli jest to zawsze z int, można po prostu przeanalizować go:

abc = int.Parse(abc).ToString() 
1

var str = int.Parse(abc).ToString(); powinien wykonać pracę, myślę. Konwertuj numer na int, a następnie po prostu przekonwertuj go na ciąg.

+0

Mój głos tutaj, ponieważ działa również z liczbami ujemnymi. Rozwiązania wykorzystujące metodę TrimStart zawiodą w takim przypadku. –

+0

nie ma liczb ujemnych .. oznacza ciąg – nologo

+0

@nologo on oznacza, że ​​metoda TrimStart nie będzie działać dla łańcucha jak "-00123" –

1
var abc = "0023"; 
var zeroless = abc.TrimStart('0'); 

wyjście: "23"

+0

Nie w temacie OP, ale dla osób potykających się o to przy wyszukiwaniu, należy rozważyć to ograniczenie 'TrimStart': ' System.String TrimStart (Char []) 'jest obsługiwane tylko w LINQ do Entities, gdy nie ma znaków trim określonych jako argumenty ' –

1
 string some_string = "000045"; 
     string ur_desire = int.Parse(some_string).ToString(); 
     Console.WriteLine(ur_desire); 

thix ix dobra odpowiedź myślę, ponieważ działa również z liczby ujemnej ..

Powiązane problemy