次のように私は、座標のリストである文字列を、持っている:私は、これは座標の配列に変換したいJavaの:文字列配列整数へ
st = "((1,2),(2,3),(3,4),(4,5),(2,3))"
を、
a[0] = 1,2
a[1] = 2,3
a[2] = 3,4
....
等々。
私はPythonで行うことができますが、私はJavaでやりたいと思います。 文字列をJavaの配列に分割するにはどうすればいいですか?
次のように私は、座標のリストである文字列を、持っている:私は、これは座標の配列に変換したいJavaの:文字列配列整数へ
st = "((1,2),(2,3),(3,4),(4,5),(2,3))"
を、
a[0] = 1,2
a[1] = 2,3
a[2] = 3,4
....
等々。
私はPythonで行うことができますが、私はJavaでやりたいと思います。 文字列をJavaの配列に分割するにはどうすればいいですか?
それは(\d+,\d+)
を捕捉し、正規表現でかなり簡単に行うと、あなたが本当に配列が必要な場合は、これを変換することができ
String st = "((1,2),(2,3),(3,4),(4,5),(2,3))";
Pattern p = Pattern.compile("\\((\\d+),(\\d+)\\)");
Matcher m = p.matcher(st);
List<String> matches = new ArrayList<>();
while (m.find()) {
matches.add(m.group(1) + "," + m.group(2));
}
System.out.println(matches);
試合をループすることができ
String [] array = matches.toArray(new String[matches.size()]);
代替ソリューション:
String str="((1,2),(2,3),(3,4),(4,5),(2,3))";
ArrayList<String> arry=new ArrayList<String>();
for (int x=0; x<=str.length()-1;x++)
{
if (str.charAt(x)!='(' && str.charAt(x)!=')' && str.charAt(x)!=',')
{
arry.add(str.substring(x, x+3));
x=x+2;
}
}
for (String valInArry: arry)
{
System.out.println(valInArry);
}
パターンマッチャーを使用しない場合は、
これはそれでなければなりません:[Javaで文字列を分割する方法]の
String st = "((1,2),(2,3),(3,4),(4,5),(2,3))";
String[] array = st.substring(2, st.length() - 2).split("\\),\\(");
可能な複製(http://stackoverflow.com/questions/3481828/how-to-split-a-string- – SomeJavaGuy
'split(")、( ")'と残りの括弧を削除しますか? –
'split( ")、(")'は機能するかもしれませんが、最初と最後の要素に余分な括弧が付きます。 –