[英]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.