解析由 | 分隔的单词

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