所以,我正在尝试制作一个基于java,基于文本的计算器,但扫描仪给我带来了一个令人头痛的问题。这是代码片段......
Scanner input=new Scanner(in);
while (input.hasNext()){
System.out.print(input.next()+".");
}
System.out.print("\n");
我的意见是:" 1 +蛋糕(3,4,6,10 * 30 +罪(4))* 3" 我的输出应该是这样的:" 1。+。cake(3,4,6,10 * 30 + sin(4))。*。3。"
扫描仪应该只标记空白,但这是我得到的: "。。1 +滤饼(。。。。。。。。。。。3,4,6,10 0.30 + SIN(4)) 0.3 "
由于某种原因,它删除了每个空格,但也分隔了标点符号的每个单词,数字和位! 现在我做了一些功课,并尝试使用input.useDelimiter(String in)的各种分隔符。 我使用的一些是:" \ s" " \ S +" " \ S *" " \ S * +" " []"还有更多但无济于事。我做错了什么!?!?!?!?!
答案 0 :(得分:0)
请尝试使用StringTokenizer。
public class demo
{
public static void main(String args[])
{
StringTokenizer st = new StringTokenizer("1 + cake(3,4,6,10*30+sin(4)) * 3");
while (st.hasMoreTokens())
{
System.out.println(st.nextToken());
}
}
}