【发布时间】:2013-12-09 23:38:42
【问题描述】:
例如,如果表达式可以有 + - / * 作为运算符,以及浮点数
输入为“3.5+6.5-4.3*4/5”
应该如何编写一个程序,一个一个返回“3.5”“+”“6.5”“-”“4.3”“*”“4”“/”“5”,我试着为这些写正则表达式,即"[*]", "[/]","[+]","[-]" 和数字的模式,并使用:
Scanner sc = new Scanner("3.5+6.5-4.3*4/5");
并使用sc.hasNext(pattern); 循环遍历每个模式,我希望它继续匹配字符串的开头直到它匹配数字模式,sc.nect(pattern) 得到“3.5”,然后是“+”等等.
但是扫描仪好像不是这样工作的,在查看了其他一些类之后,我找不到一个好的解决方案。
【问题讨论】:
-
扫描仪通常只有在您事先知道输入的格式时才有用。最好的方法是读取整行,然后将其拆分为运算符和操作数。
标签: java regex parsing lexical-analysis