1
所以,我想製作一個Java,基於文本的計算器,但掃描儀給我一個頭痛的地獄。下面是一個代碼snipit ...掃描儀與數學文本和太多令牌的問題
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.蛋糕(3,4,6,10 * 30 + sin(4))。*。3。」
掃描儀只應該標記空格,但這是我得到的: 「1。+。cake。(.3。,.4。,.10,..30。+ .sin。 (.4。)。)。 .3。「
由於某種原因,它刪除了每個空格,但也分隔標點符號的每一個單詞,數字和位! 現在我已經做了一些功課,並嘗試使用input.useDelimiter(String in)的各種分隔符。我使用的一些是:「\ s」「\ s +」「\ s *」「\ s * +」「[]」以及更多,但無濟於事。我究竟做錯了什麼!?!?!?!?!
你試過了input.useDelimiter(「\\ s +」); //把這個放在正上方 –
是的,input.useDelimiter(「XXXXX」);我使用的是那裏,其中XXXXX是我列出的每一個。由於某種原因,它刪除了我在前面的額外的斜線。我甚至通過我的輸入蜇印字符每行,以確保有沒有驚喜的字符... –
你有沒有試過.. String [] tokens = in.split(「\\ s +」); –