Java 字符串拆分未返回正确的值
我正在尝试解析一个txt文件,该文件表示要在递归下降解析器中使用的语法。txt 文件将如下所示:
SPRIME ::= Expr eof
Expr ::= Term Expr'
Expr' ::= + Term Expr' |- 术语 expr' |e
为了隔离左侧并将右侧拆分为单独的生产规则,我采用每条线并调用:
String[] firstSplit = line.split("::=");
String LHS = firstSplit[0];
String productionRules = firstSplit[1].split("|");
但是,当我调用第二个拆分方法时,我返回的不是由“|”字符分隔的字符串数组,而是右侧每个独立字符的数组,包括“|”。例如,如果我正在解析 Expr' 规则并打印生产规则数组,它看起来像这样:
"+"
“Term”
“Expr'”
“”
|”
当我真正想要的东西应该看起来像这样:
- Term Expr'
有人知道我做错了什么吗?