java令牌生成器清单

问题描述

我想将字符串行标记为令牌(存储在String表中),我只能使用java.io. * 是要实现一个计算器。 例如: 第一行:1 + 2 + 3 第二行:1+ 2 * 3(这在令牌之间有空格) 进入表格{\“ 1 \”,\“ + \”,\“ 2 \”,\“ + \”,\“ 3 \”} 我想过拆分任何创意吗?     

解决方法

提示:使用
java.io.StreamTokenizer
    ,除了manji所说的之外,如果您真的想实现一个计算器,则需要在标记化令牌之后解析它们。 例如,如果您有表达式:   1 + 2 + 3 *(4 + 5) 您需要创建一个抽象语法树,以便正确评估该表达式。 仅正则表达式不足以完全解决此问题。     ,这很容易完成。
 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。     ,要扫描输入,我建议使用java.util.Scanner。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...