mam ciągi tak:Jak sformatować ciąg znaków, aby wykluczyć początkowe zera?
var abc = "002";
var def = "023";
Jak można łatwo zmienić ciągi zer wiodących więc są odrzucane?
mam ciągi tak:Jak sformatować ciąg znaków, aby wykluczyć początkowe zera?
var abc = "002";
var def = "023";
Jak można łatwo zmienić ciągi zer wiodących więc są odrzucane?
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”.
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.
+1 beat mnie do niego. –
+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'. –
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' –
Jeśli jest to zawsze z int, można po prostu przeanalizować go:
abc = int.Parse(abc).ToString()
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.
Mój głos tutaj, ponieważ działa również z liczbami ujemnymi. Rozwiązania wykorzystujące metodę TrimStart zawiodą w takim przypadku. –
nie ma liczb ujemnych .. oznacza ciąg – nologo
@nologo on oznacza, że metoda TrimStart nie będzie działać dla łańcucha jak "-00123" –
var abc = "0023";
var zeroless = abc.TrimStart('0');
wyjście: "23"
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 ' –
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 ..
+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. –
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". –
@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. –