1


:ユーザー入力が(コロン)で区切られた文字列要素の希望の長さを与えるアプリケーションがありました

それを解析する私のコードはこのようなものです

String str[] = input.split(":");

しかし、ユーザー文字列の間に:があると、誤った結果が得られます。

を使用して文字列を使用しようとしました\:が、うまくいきませんでした。

サンプルのユーザー文字列は、1:2:3のようになります。

ここでの期待値は

str[0] = "1";
str[1] = "2";
str[2] = "3";

そして実際と同じ

しかし、文字列が次のような 場合   1:Title 1  :: 2: Title 23: Title 3

ここでの期待値は

str[0] = "1: Title 1";
str[1] = "2: Title 2";
str[2] = "3: Title 3";

実際のものとは異なりますが、

str[0] = "1";
str[1] = "Title 1";
str[2] = "2";
str[3] = "Title 2";
str[4] = "3";
str[5] = "Title 3";

どうすればこれを克服できますか?

4

3 に答える 3

0

以下はあなたのために働くはずです:

String str = "1:Title 1  : 2: Title 2 :   3: Title 3";
String[] arr = str.split("\\s*:(?=\\s*\\d)\\s*");
System.out.printf("Split: %s%n", Arrays.toString(arr));

出力:

Split: [1:Title 1, 2: Title 2, 3: Title 3]

ライブデモ: http://ideone.com/8yeGns

于 2013-07-16T10:19:47.993 に答える