私はString a="abcd1234"
を持っているので、これをString b="abcd"
とInt c=1234
に分割したいです。この分割コードは、ab123456やacff432などのすべての入力のキングに適用する必要があります。この種類の文字列を分割する方法。出来ますか?
_(?<=\D)(?=\d)
_のような正規表現で分割してみることができます。これを試してください:
_String str = "abcd1234";
String[] part = str.split("(?<=\\D)(?=\\d)");
System.out.println(part[0]);
System.out.println(part[1]);
_
出力されます
_abcd
1234
_
数字の文字列をInteger.parseInt(part[1])
を使用して整数に解析できます。
正規表現を使用します。
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));
私はこれをコンパイルしていませんが、あなたはアイデアを得るべきです。
次のことができます:
split("(?=\\d)(?<!\\d)")
のような正規表現で分割正規表現を使用 "[^ A-Z0-9] + |(?<= [AZ])(?= [0-9])|(?<= [0-9]) (?= [AZ]) "スティングをアルファベットと数字で分割します。
例えば.
String str = "ABC123DEF456";
次に、この正規表現を使用した出力は次のようになります。
ABC 123 DEF 456
完全なコードについては、次のURLにアクセスしてください。
http://www.zerotoherojava.com/split-string-by-characters-and-numbers/
総当たりのソリューション。
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);