470 Stimmen

Suchen und Extrahieren einer Zahl aus einer Zeichenkette

Ich habe die Anforderung, eine in einer Zeichenkette enthaltene Zahl zu finden und zu extrahieren.

Zum Beispiel aus diesen Zeichenfolgen:

string test = "1 test"
string test1 = " 1 test"
string test2 = "test 99"

Wie kann ich das tun?

13voto

BvdVen Punkte 2841

Sie können auch Folgendes versuchen

string.Join(null,System.Text.RegularExpressions.Regex.Split(expr, "[^\\d]"));

12voto

fubo Punkte 42146

Hier ist eine weitere Linq Ansatz, der die erste Zahl aus einer Zeichenkette extrahiert.

string input = "123 foo 456";
int result = 0;
bool success = int.TryParse(new string(input
                     .SkipWhile(x => !char.IsDigit(x))
                     .TakeWhile(x => char.IsDigit(x))
                     .ToArray()), out result);

string input = "123 foo 456"; // 123
string input = "foo 456";     // 456
string input = "123 foo";     // 123

12voto

Ramireddy Ambati Punkte 179
 string input = "Hello 20, I am 30 and he is 40";
 var numbers = Regex.Matches(input, @"\d+").OfType<Match>().Select(m => int.Parse(m.Value)).ToArray();

12voto

Shyam sundar shah Punkte 2331

Sie können dies tun mit String Eigenschaft wie unten:

 return new String(input.Where(Char.IsDigit).ToArray()); 

die nur die Zahl aus der Zeichenkette liefert.

11voto

Daniel Gehriger Punkte 7206

Verwenden Sie einfach ein RegEx, um die Zeichenfolge abzugleichen, und konvertieren Sie dann:

Match match = Regex.Match(test , @"(\d+)");
if (match.Success) {
   return int.Parse(match.Groups[1].Value);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X