2016-08-19 4 views
0

Ich möchte numerische Werte aus einer Zeichenfolge extrahieren.Numerische Werte aus einem String-Wert in Java abrufen

z. Ich habe Werte wie folgt aus:

abc9856412368def    
9812345678abc   
abc9812345678  
abc256789def  
4567abc  

I Output wie diese wollen (in drei Spalten):

Col1   Col2   Col3 
abc def 9856412368 
abc  9812345678 
abc  9812345678 
abc def      256789 
abc       4567 

Wenn Nummer 10 oder mehr als 10 dann speichern Sie es in col2 sonst in col3. Ich habe versucht, REGEXP zu verwenden, aber es extrahiert nicht die Nummer in mysql workbench. Aber es gab null Zeilen zurück.

select first_name 
from mytable 
where First_Name regexp '^[0-9]+$' and First_Name!="" 

Ich denke, es mit Java zu finden. Gespeichert in Resultset. Ich möchte auch sicherstellen, dass die Handynummern in Spalte 2 eingefügt werden sollen. Kann mich jemand dazu leiten?

Antwort

1

Ich denke auch in Java Regex sollte der Weg sein.

// Extract numbers from String 
Pattern p1 = Pattern.compile("-?\\d+"); 
// Extract words from String 
Pattern p2 = Pattern.compile("-?\\D+"); 

Matcher m1 = p1.matcher("abc9856412368def"); 
Matcher m2 = p2.matcher("abc9856412368def"); 
while (m1.find()) { 
    System.out.println(m.group()); // Prints 9856412368 
} 
while (m2.find()) { 
    System.out.println(m.group()); // Prints abc and def 
} 

Jetzt müssen Sie nur die Ausgabe formatieren.

+0

Vielen Dank für Ihre Hilfe. Aber ich habe eine riesige Daten, die Zahl innerhalb einer Zeichenfolge kann überall sein. Ich muss solche Nummern aus der ganzen Zeichenfolge abrufen. und fügen Sie sie in andere Spalten ein. –

Verwandte Themen