2017-03-14 26 views
0

次のように私は、座標のリストである文字列を、持っている:私は、これは座標の配列に変換したい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の配列に分割するにはどうすればいいですか?

+2

可能な複製(http://stackoverflow.com/questions/3481828/how-to-split-a-string- – SomeJavaGuy

+1

'split(")、( ")'と残りの括弧を削除しますか? –

+0

'split( ")、(")'は機能するかもしれませんが、最初と最後の要素に余分な括弧が付きます。 –

答えて

6

それは(\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()]); 
+0

ありがとう、それは働いた.. –

+0

彼の答えを受け入れる; D – AMB

+1

それは5分待っていると言っている..私は5分後に受け入れます –

0

代替ソリューション:

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

パターンマッチャーを使用しない場合は、

0

これはそれでなければなりません:[Javaで文字列を分割する方法]の

String st = "((1,2),(2,3),(3,4),(4,5),(2,3))"; 
String[] array = st.substring(2, st.length() - 2).split("\\),\\("); 
関連する問題