繁体   English   中英

如何拆分括号和,在 Java

[英]How to split parenthesis and , in Java

我想拆分这个字符串 (1,0) 并得到结果 1 和 0 我试过这个代码:

String str ="(1,0)";
String parts[]= str.split("(,)");
System.out.println(parts[0]);
System.out.println(parts[1]);

但我得到了这个:

(1

0)

这是一种有效的方法,您可以使用正则表达式工具隔离所有数字并将它们放入ArrayList以便于使用。 它不使用.split()方法,但它很有效。

import java.util.ArrayList;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public static void main(String[] args) {
    String str = "(1,0)";

    Pattern p = Pattern.compile("\\d+");
    Matcher m = p.matcher(str);
    ArrayList<Integer> vals = new ArrayList<>();

    while(m.find())
      vals.add(Integer.parseInt(m.group()));

    System.out.println(vals);
}

如果在(上拆分,则返回数组中的第一个值将是""

我建议直接使用正则表达式,例如

String input = "(1,0)";
Matcher m = Pattern.compile("\\(([^,\\)]+),([^,\\)]+)\\)").matcher(input);
if (! m.matches())
    throw new IllegalArgumentException("Invalid input: " + input);
System.out.println(m.group(1));
System.out.println(m.group(2));

当然,如果你坚持使用split() ,也可以这样:

String input = "(1,0)";
String[] parts = input.split("[(,)]");
if (parts.length != 3 || ! parts[0].isEmpty())
    throw new IllegalArgumentException("Invalid input: " + input);
System.out.println(parts[1]);
System.out.println(parts[2]);

一个简单的解决方案如下:

public class Main {
    public static void main(String[] args) {
        String str = "(1,0)";
        String parts[] = str.replace("(", "").replace(")", "").split(",");
        System.out.println(parts[0]);
        System.out.println(parts[1]);
    }
}

Output:

1
0

如果您知道如何使用正则表达式,请使用 go。 (我个人更喜欢在这里使用字符串操作,因为它真的更容易)如果没有,请学习如何使用它或执行以下操作:

String input = "(64,128)";
String[] numbers = input.substring(1, input.length() - 1).split(",");

试试这个,假设你的格式是一致的。

        String str = "(1,0)";
        String[] tokens = str.substring(1,str.length()-1).split(",");
        System.out.println(Arrays.toString(tokens));

印刷

[1, 0]

或者如果单独打印

1
0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM