it-swarm.com.de

Wie entferne ich führende Nullen?

Wie entferne ich führende Nullen in Strings mit C #?

In den folgenden Zahlen möchte ich beispielsweise alle führenden Nullen entfernen.

0001234
0000001234
00001234
110
user874966

Es hängt wirklich davon ab, wie lange NVARCHAR ist, da einige der obigen Methoden (insbesondere die Methoden, die mit IntXX konvertieren) nicht funktionieren:

String s = "005780327584329067506780657065786378061754654532164953264952469215462934562914562194562149516249516294563219437859043758430587066748932647329814687194673219673294677438907385032758065763278963247982360675680570678407806473296472036454612945621946";

So etwas würde es tun

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

Dies ist der Code, den Sie benötigen:

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

Code, um zu vermeiden, dass eine leere Zeichenfolge zurückgegeben wird (wenn die Eingabe "00000" ist).

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

return numberString.TrimStart('0');

23
Ray

TryParse funktioniert, wenn Ihre Anzahl unter Int32.MaxValue liegt. Dadurch haben Sie auch die Möglichkeit, mit schlecht formatierten Zeichenketten umzugehen. Funktioniert auf dieselbe Weise wie Int64.MaxValue und Int64.TryParse .

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

Die Verwendung des folgenden Befehls gibt eine einzelne 0 zurück, wenn alle Eingaben 0 sind.

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

Mit diesem Regex können Sie ein falsches Ergebnis mit Ziffern vermeiden, die nur aus Nullen "0000" bestehen, und mit beliebig langen Ziffern arbeiten:

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

Und dieser Regex entfernt führende Nullen innerhalb von String:

new Regex(@"(?<!\d)0+(?=\d)");
//  "0000123432 d=0 p=002 3?0574 m=600"
//     => "123432 d=0 p=2 3?574 m=600"
1
dNP
Regex 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");
0
Bharat