我想将String行标记为令牌(存入String表),我只能使用java.io. * 这是实现计算器。
例如: 第一行:1 + 2 + 3 第二行:1 + 2 * 3(这一个在令牌之间有空格)
进入表格{“1”,“+”,“2”,“+”,“3”}
我想过拆分任何想法?
答案 0 :(得分:2)
答案 1 :(得分:1)
除了manji所说的,如果你真的想要实现一个计算器,你需要在你的令牌被标记后解析。
例如,如果你有表达式:
1 + 2 + 3 *(4 + 5)
您需要创建抽象语法树,以便正确评估表达式。
仅靠正则表达式还不足以完全解决这个问题。
答案 2 :(得分:0)
这很容易实现。
String text = "1+2+3";
StringBuilder seperatedString = new StringBuilder();
char[] chars = text.toCharArray();
for (int i = 0; i < chars.length; i++) {
char aChar = chars[i];
if(!Character.isSpaceChar(aChar)) {
seperatedString.append(aChar).append(",");
}
}
System.out.println("The tokenized string"+ seperatedString);
或者你可以像@glowcoder一样使用正则表达式。当被问及你如何知道正则表达式时,你可以说你使用了RegexBuddy。
答案 3 :(得分:0)
要扫描输入,我建议使用java.util.Scanner。