1

私はこのような文字列を持っています:

288.999,224.004 283.665,258.338 313.332,293.005 312.332,336.671 270.999,389.338 371.998,412.338 

データを解析して float 値にしようとしていますが、並べ替えたいです。コンマの前の値は x 値で、コンマの後の値は y 値である必要があります。

Pattern p = Pattern.compile("[0-9]+.[0-9]*");
Matcher m = p.matcher(pointString);
while(m.find())
{
   System.out.print("x:"+m.group(0)); //x- Values
  // System.out.print("y:"+m.group(1)); //y- Values
}

このコードは 1 つのグループを作成するだけです...文字列パターンを変更して、y 値を持つ 2 番目のグループを取得するにはどうすればよいですか...

有利な結果:

x:288.999
y:224.004 
x:283.665
y:258.338 
....
4

3 に答える 3

8

シンプルにしてください。分割で十分です。

String input = "288.999,224.004 283.665,258.338 313.332,293.005 312.332,336.671 270.999,389.338 371.998,412.338";

String[] points = input.split(" ");
for (String point : points) {
  String[] coordinates = point.split(",");
  System.out.println("x:" + coordinates[0]);
  System.out.println("y:" + coordinates[1]);
}
于 2013-06-26T09:35:07.370 に答える
2

あなたが探しているパターン:

((?:\\d*\\.\\d+)|(?:\\d+\\.\\d*)) *, *((?:\\d*\\.\\d+)|(?:\\d+\\.\\d*))

また、 group(0) は一致全体をもたらします。むしろ、 group(1) と group(2) を探しています

于 2013-06-26T09:46:31.593 に答える
0

これはうまくいきます

 String str = "288.999,224.004 283.665,258.338 313.332,293.005 312.332,336.671 270.999,389.338 371.998,412.338";
    String[] points=str.split(" ");
    String[] point=new String[2];
    for(int i=0;i<points.length;i++){
        point=points[i].split(",");
        System.out.println("X-val: "+point[0]);
        System.out.println("Y-val: "+point[1]);
    }
于 2013-06-26T09:55:05.913 に答える