Java:字符串到整数数组

时间:2017-03-14 13:04:12

标签: java arrays arraylist

我有一个字符串,它是一个坐标列表,如下所示:

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 ??

中的数组

3 个答案:

答案 0 :(得分:6)

使用正则表达式可以很容易地完成,捕获let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" if let date = dateFormatter.date(from: "2017-03-14") { dateFormatter.dateFormat = "EEEE, MMMM dd, yyyy" let string = dateFormatter.string(from: date) // "Tuesday, March 14, 2017" } 并循环匹配

(\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);

答案 1 :(得分: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);
    }

如果您不想使用Pattern-Matcher;

答案 2 :(得分:0)

应该是这样:

String st = "((1,2),(2,3),(3,4),(4,5),(2,3))";
String[] array = st.substring(2, st.length() - 2).split("\\),\\(");