web-dev-qa-db-ja.com

文字列を文字列と整数に分割する方法java

私はString a="abcd1234"を持っているので、これをString b="abcd"Int c=1234に分割したいです。この分割コードは、ab123456やacff432などのすべての入力のキングに適用する必要があります。この種類の文字列を分割する方法。出来ますか?

10
karthi

_(?<=\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])を使用して整数に解析できます。

19

正規表現を使用します。

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));

私はこれをコンパイルしていませんが、あなたはアイデアを得るべきです。

3
SimonC

次のことができます:

  1. split("(?=\\d)(?<!\\d)")のような正規表現で分割
  2. これで文字列の配列があり、それを解析するだけです。
3
Javier Diaz

正規表現を使用 "[^ 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/

0
Mohit Tyagi

総当たりのソリューション。

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