我有一个字符串#JSGF V1.0;grammar numbers;public <accion> = (one| two| three);
我想要数字:一,二和三。
我这样做String answer = res.substring(res.indexOf("(")+1,res.indexOf(")"));
并获得one| two| three
,但我在这方面遇到了麻烦。
想法?
答案 0 :(得分:2)
您可以使用
将数字作为数组String numbers[] = answer.split("\\s*\\|\\s*");
\\s*\\|\\s*
:0个或更多个空格,然后是|
个符号和0个或更多个空格
答案 1 :(得分:0)
String res = "(one| two| three);";
String answer = res.substring(res.indexOf("(")+1,res.indexOf(")"));
for(String str : answer.split("\\s*\\|\\s*")) {
System.out.println(str);
}
答案 2 :(得分:0)
将answer
拆分为非单词字符:
public static void main(String[] args) {
String res = "JSGF V1.0;grammar numbers;public <accion> = (one| two| three);";
String answer = res.substring(res.indexOf("(") + 1, res.indexOf(")"));
String[] numbers = answer.split("[^\\w]+"); // split on non-word character
for (String number : numbers) {
System.out.println(number);
}
}
输出:
one
two
three