看板 java 關於我們 聯絡資訊
我有寫一個程式 執行時要輸入3個參數來表示一個數學運算式子 例如: 2 + 12 30 - 2 中間固定放加減乘除符號 而我的程式中有對參數數量進行判斷 if(args.length!=3) Error();//呼叫我另外寫的錯誤處理程式 但是我測試卻發現一個問題 如果我用*號 這個判斷式就會呼叫Error(); 使用其他符號就正常 後來我輸出了args.length 發現如果用+ - / 長度是3(正常結果) 但是用了* 長度卻會變6 這是為什麼啊 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.49.172
kaomark:把args都印出來看看? 是不是*被shell當成萬用字元了 10/10 08:39
"是不是*被shell當成萬用字元了" 這部份我看不懂耶(對於推文都不知道該回還是該編輯>"<) args我是有印出來啦 結果應該是"*"這個參數被整個資料夾裡的檔案名稱給取代了=.= 也就是有多少檔案就有多少參數取代*號的樣子 為何輸入"*"會有這樣的結果啊 有什麼方式可以避免這樣的影響嗎 ※ 編輯: thinkniht 來自: 218.170.49.172 (10/10 08:59)
kaomark:用""或''包住*試試看 10/10 09:01
用''包住的確有效... 雖然...這樣就和題目意思不合了=.= 算了...反正那個題目的範例答案也是錯的(會不會爛得誇張點啊XD) 不知道有沒有辦法正常的輸入*號但是可以正常執行的方法嗎 就是還是可以輸入像是"2 * 3" 或者"4 * 8"之類的參數 但是又不會影響到args長度 ※ 編輯: thinkniht 來自: 218.170.49.172 (10/10 09:18)
thinkniht:另外還是不知道"被shell當成萬用字元"是啥意思 10/10 09:19
godfat:這種東西本來就應該用 "" 包起來,不是不和題目, 10/10 13:10
godfat:應該說是題目不對,或是你太堅持了.. 合 10/10 13:11
ogamenewbie:你要不要考慮用 x 取代 * 當輸入參數... 10/10 14:06
thinkniht:我是最近想考TQC的認證=.=這是其中術科的一個問題 10/10 18:14
thinkniht:題庫題目那樣 我也不太可能隨便改題目... 10/10 18:15