Zahl extrahieren
-
Hallo Community,
ich habe einen string, welcher mit einer Zeichenkette beginnt und mit einer Zahlenfolge endet.
Dafür benutze ich folgendes:
string theString = "Hallo1234"; IEnumerable<char> number = theString.SkipWhile(c => !char.IsDigit(c));
Es gibt keinen string-Konstruktor, welcher IEnumerable annimmt, sondern ein char -Array
string theString = "Hallo1234"; IEnumerable<char> numberEnumerable = theString.SkipWhile(c => !char.IsDigit(c)); char[] numberArray = numberEnumerable.ToArray(); string numberString = new string(numberArray); //eine Konvertierung ist auch noch notwendig int number = Convert.ToInt32(numberString);
Wie ihr seht, komme ich zwar zu meinem Ziel, jedoch sehr umständlich.
Gibt es für sowas eine bessere Methode?
Mfg
-
string theString = "Hallo1234"; //Mit Regex int num1 = int.Parse(Regex.Match(theString, @"(\d+)").Value); // Deine Variante verkürzt int num2 = int.Parse(new string(theString.Where(c => char.IsDigit(c)).ToArray())); //Wenn du beides brauchst int firstDigit = theString.IndexOfAny("0123456789".ToCharArray()); int num = int.Parse(theString.Substring(firstDigit)); string rest = theString.Substring(0, firstDigit);
-
Schöne Regex-Lösung!
Merke ich mir!