解析由 | 分隔的单词
Parse words separate by |
我有一个字符串#JSGF V1.0;grammar numbers;public <accion> = (one| two| three);
我想要数字:一、二和三。
我这样做了 String answer = res.substring(res.indexOf("(")+1,res.indexOf(")"));
并获得了 one| two| three
,但是我在这部分遇到了问题。
想法?
您可以使用
获取数组形式的数字
String numbers[] = answer.split("\s*\|\s*");
\s*\|\s*
: 0 个或更多空格然后 |
符号和 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);
}
在非单词字符上拆分 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
我有一个字符串#JSGF V1.0;grammar numbers;public <accion> = (one| two| three);
我想要数字:一、二和三。
我这样做了 String answer = res.substring(res.indexOf("(")+1,res.indexOf(")"));
并获得了 one| two| three
,但是我在这部分遇到了问题。
想法?
您可以使用
获取数组形式的数字String numbers[] = answer.split("\s*\|\s*");
\s*\|\s*
: 0 个或更多空格然后 |
符号和 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);
}
在非单词字符上拆分 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