it-swarm.com.de

wie man den string in string und integer in Java aufteilt

Ich habe den String a="abcd1234" und ich möchte diesen in String b="abcd" und Int c=1234 aufteilen. Dieser Aufteilungscode sollte für alle Königseingaben wie ab123456 und acff432 und so weiter gelten. Wie man diese Art von Saiten teilt. Ist es möglich?

7
karthi

Sie könnten versuchen, einen regulären Ausdruck wie (?<=\D)(?=\d) aufzuteilen. Probier diese:

String str = "abcd1234";
String[] part = str.split("(?<=\\D)(?=\\d)");
System.out.println(part[0]);
System.out.println(part[1]);

wird ausgegeben

abcd
1234

Sie können die Ziffernfolge mit Integer.parseInt(part[1]) in Integer umwandeln.

16

Sie können das nächste tun:

  1. Aufgeteilt durch einen regulären Ausdruck wie split("(?=\\d)(?<!\\d)")
  2. Damit haben Sie eine Reihe von Zeichenfolgen und müssen sie nur analysieren.
3
Javier Diaz

Verwenden Sie einen regulären Ausdruck:

Pattern p = Pattern.compile("([a-z]+)([0-9]+)");
Matcher m = p.matcher(string);
if (!m.find())
{ 
  // handle bad string
}
String s = m.group(1);
int i = Integer.parseInt(m.group(2));

Ich habe das nicht zusammengestellt, aber Sie sollten auf die Idee kommen.

2
SimonC

Benutze regex "[^ A-Z0-9] + | (? <= [AZ]) (? = [0-9]) | (? <= [0-9]) (? = [AZ] ) "um den Stich nach Buchstaben und Zahlen zu teilen.

für z.

String str = "ABC123DEF456";

Dann ist die Ausgabe unter Verwendung dieses regulären Ausdrucks:

ABC 123 DEF 456

Den vollständigen Code finden Sie unter der folgenden URL:

http://www.zerotoherojava.com/split-string-by-characters-and-numbers/

0
Mohit Tyagi

Eine Brute-Force-Lösung.

String a = "abcd1234";
int i;
for(i = 0; i < a.length(); i++){
    char c = a.charAt(i);
    if( '0' <= c && c <= '9' )
        break;
}
String alphaPart = a.substring(0, i);
String numberPart = a.substring(i);
0
johnchen902