我正在尝试将源代码分隔为标记,我希望将分隔符 \\s|+;,{}[]
标记化。但我不知何故失败了,有什么建议吗?
public void tokenize() {
StringTokenizer st = new StringTokenizer(this.sourceCode, "\\s+|[;{}\\[\\]]", true);
int counter = 0;
while (st.hasMoreElements()) {
String token= (String) st.nextElement();
tokenizedCode.put(counter, token.trim());
counter++;
}
}
编辑:注意:该分隔符没有正确标记我所期望的
我希望将 int a=10;
标记为 int,a,=,10
最佳答案
StringTokenizer
类的构造函数不采用正则表达式作为参数,因此您可以这样做:
StringTokenizer st = new StringTokenizer(this.sourceCode, " ;{}[]=", true);
请注意,StringTokenizer
是一个遗留类,出于兼容性原因而保留,尽管不鼓励在新代码中使用它。建议任何寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。 例如:
String[] result = this.sourceCode.split("\\s+|[;{}\\[\\]]");
for (String str : result) {
System.out.println(str);
}
关于java - 使用分隔符进行标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19631122/