Geben Sie einfach eine Zeichenfolge mit Zahlen, z. B.:
String S = "Eert343DFG56756dtry66FGGG89DFGF";
Wie extrahieren wir die Zahlen? Es gibt ungefähr die folgenden Methoden, regulären Ausdrücke, Sammelklassen und Methoden, die von String -Klassen bereitgestellt werden.
1 Methoden, die nach String -Klasse bereitgestellt werden:
Pakettestübung; import Java.util.*; öffentliche Klasse get_stringnum {/***2016.10.25*/public static void main (String [] args) {String str = "love23Next234csdn3423javaeye"; Str. Str.trim (). i = 0; i <str.length (); i ++) {if (str.charat (i)> = 48 && str.charat (i) <= 57) {str2+= str.charat (i);}}} System.out.println (str2);Diese Methode hat einen offensichtlichen Nachteil, sie kann nur alle Zahlen zusammen extrahieren, aber nicht separat. Natürlich kann es auch verbessert werden. Interessierte Freunde können es versuchen.
2 reguläre Ausdrücke
Import Java.util. regex = "[^0-9]"; Muster p = muster.comPile (regex); Matcher M = P.Matcher (a); System.out.println (M.ReplaceAll (""). Trim ());}} Ausgabe: 232343423Muster, Matcher ist zwei Klassen im Softwarepaket java.util.regex. Sie können die API auf eine bestimmte Verwendung überprüfen. Außerdem können Zahlen nicht einzeln extrahiert werden.
3 Sammlung Klassenbibliothek
import Java.util. ArrayList<String>();Pattern p = Pattern.compile("[^0-9]");Matcher m = p.matcher(a);String result = m.replaceAll("");for (int i = 0; i < result.length(); i++) {digitList.add(result.substring(i, i+1));} System.out.println (DigitList);}} Ausgabe: [2, 3, 2, 3, 4, 3, 4, 2, 3] Gleiche Idee:
Import Java.util. Liste <String> ss = new ArrayList <string> (); für (String SSS: S.ReplaceAll ("[^0-9]", ","). Split (",")) {if (sss.length ()> 0) ss.add (ss); } System.out.print (SS); }} Ausgabe: [2, 3, 2, 3, 4, 3, 4, 2, 3]Es ist offensichtlich, dass wir mit regulären Ausdrücken Zahlen separat extrahieren können.
Es gibt auch eine Antwort zu finden, indem Sie die Dokumente nachschlagen, wie folgt:
/ ** *Die Nummer aus dem Zeichenfolge Text erhalten *@Paramentext *@return */ publicStatic List <Long> getDigit (String -Text) {List <Long> digitList = new ArrayList <Long> (); Muster p = muster.comPile ("(// d+)"); Matcher M = P.Matcher (Text); while (m.find ()) {String find = M.Group (1) .ToString (); DigitList.add (long.Valueof (find)); } return digitList; }Die beiden Urteilsmethoden, die mit regulären Ausdrücken übereinstimmen, sind wie folgt;
// Bestimmen Sie, ob alle Zeichenfolgen number sind public boolean isDigit (String strnum) {return strnum.matches ("[0-9] {1,}"); } // Bestimmen Sie, ob alle Zeichenfolgen Zahlen public boolean isDigit (String strnum) sind {mustermuster = muster.comPile ("[0-9] {1,}"); Matcher Matcher = muster.Matcher ((charsequence) strnum); return Matcher.Matches (); } // Abfangen die Nummer public String getNumbers (String -Inhalt) {muster muster = muster.comPile ("// d+"); Matcher Matcher = muster.Matcher (Inhalt); while (matcher.find ()) {return matcher.group (0); } zurückkehren ""; } // Abfangen nicht nummer public String splitnotNumber (String-Inhalt) {muster muster = muster.comPile ("// d+"); Matcher Matcher = muster.Matcher (Inhalt); while (matcher.find ()) {return matcher.group (0); } zurückkehren ""; }Das obige ist der gesamte Inhalt des einfachen Beispiels für Java, das Zahlen aus Strings extrahiert, die Ihnen vom Herausgeber gebracht wurden. Ich hoffe, jeder kann Wulin.com mehr unterstützen ~