看板 java 關於我們 聯絡資訊
之前我學弟問我的= =" 輸入大概就像這樣 5+3*2 一定是三個數做運算 我是想說 測資格式是一定的 所以應該不需要轉成後序再用stack來算 太麻煩了= =" 一個一個讀出來 判斷一下就好了 本來想說java有沒有像c的sscanf這樣的功能 不過好像沒有~"~ 有的話 輸入就秒殺了... 而且Scanner也沒有啥nextChar可以用 嘗試用nextInt之類的完全不行= =" 後來是先讀一整行 存在String裡 StringTokenizer 把三個數字讀出來存著 然後再一個for迴圈 把在String裡頭的第一個運算符號和第二個讀出來存著 把後面的判斷寫一寫就完成了 不過感覺真的很大費周章= =" 不知道有沒有什麼比較好的方法@@? 還是只能這樣寫了?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.171.140.75
TonyQ:另一個作法是用read() 一次讀一個char 兜一兜~ 05/23 12:11
jtmh:1. 讀一整行並存到 String 裡 05/24 04:08
jtmh:2. 用 String 的 split() 直接拆解成含五個元素的 String[] 05/24 04:14
jtmh:3. 根據索引 [1]、[3] 的運算符號來計算,記得 [0]、[2]、[4] 05/24 04:18
jtmh:要先轉成數字 05/24 04:19
TonyQ:split的功能跟StringTokenizer是很接近的說~ 05/25 16:14