2017-07-28 19 views
1

So habe ich Strings 22test12344DC und 1name23234343dcExtract gefunden erste int von String

ich die beste Art und Weise möchte das erste volle int aus einem String zu extrahieren gefunden.

Also würde dies 22 und 1 von den obigen Beispielen zurückgeben. Die ersten full int's gefunden

Ich habe diesen Weg versucht, aber ich will keine Werte nach dem ersten Zeichen.

mystr.split("[a-z]")[0] 
+0

regex betrachten für Zahlen in Strings statt passend! –

+0

'Ich möchte keine Werte nach dem ersten char. Wie willst du 22 dann bekommen –

+1

22test12344DC 22 ist der erste Int. – Blawless

Antwort

2

bereits.

String s = "22test12344DC"; 
String firstInt = s.replaceFirst(".*?(\\d+).*", "$1"); 
System.out.println(firstInt); 

Ergebnis:

22 
1

Mit Regex und das richtige Muster den Trick: here is one example

Pattern.compile("\\d+|\\D+") 

dann die while-Schleife brechen, da Sie nur das erste Spiel benötigen

String myCodeString = "22test12344DC"; 
myCodeString = "1name23234343dc"; 
Matcher matcher = Pattern.compile("\\d+|\\D+").matcher(myCodeString); 

while (matcher.find()) { 
    System.out.println(matcher.group()); 
    break; 
}