带分隔符的java标记化
我试图将源代码划分为标记,我希望将分隔符\\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
中被标记化
# 1 楼答案
StringTokenizer
类的构造函数不使用正则表达式作为参数,因此您可以这样做:注意
StringTokenizer
是一个遗留类,出于兼容性原因保留了它,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人使用String或java的split方法。util。改为正则表达式包Ex:# 2 楼答案
构造函数的第三个参数使其也返回分隔符