1

string(1, 2, 3, 4)があり、整数を配列に解析したいと考えています。

を使用split(",\\s")して、開始要素と終了要素以外のすべてを分割できます。私の質問は、開始括弧と終了括弧が無視されるように変更するにはどうすればよいですか?

4

4 に答える 4

3

数字と数字の間のスペースを一致させるよりも、数字を一致させたほうがよいでしょう。使用する

final Matcher m = Pattern.compile("\\d+").matcher("(1, 2, 3, 4)");
while (m.find()) System.out.println(Integer.parseInt(m.group()));
于 2012-05-16T18:34:29.600 に答える
2

2 つの正規表現を使用します。1 つ目は括弧を削除し、2 つ目は分割します。

Pattern p = Pattern.compile("\\((.*)\\)");
Matcher m = p.matcher(str);
if (m.find()) {
    String[] elements = m.group(1).split("\\s*,\\s*");
}

そして、分割正規表現の私の変更に注意してください。はるかに柔軟で安全です。

于 2012-05-16T18:34:21.337 に答える
1

substring() を使用してから split(",") を使用できます

  String s = "(1,2,3,4)";
  String s1 = s.substring(1, s.length()-2);//index should be 1 to length-2
  System.out.println(s1);

  String[] ss = s1.split(",");
  for(String t : ss){
    System.out.println(t);
  }
于 2012-05-16T18:40:22.570 に答える
0

split("[^(),\\s]")代わりに使用するように変更してください。

于 2012-05-16T18:32:23.943 に答える