簡體   English   中英

Java:條件語句的邏輯不起作用,即使不滿足條件也允許程序運行

[英]Java: The logic of the conditional statement doesn't work and allows the program to run even when the conditions are not met

我有以下兩行代碼,其中為執行條件語句設置了某些條件。 但是,邏輯存在問題,因為即使不滿足條件,條件語句中的程序也會運行。

if (!(token.equals('+')) && !(token.equals('-')) && !(token.equals('*')) && !(token.equals('/'))) {
            operandStack.push(Integer.valueOf(token));
        }

我正在得到一個java.lang.NumberFormatException:對於此代碼第二行中的輸入字符串:“我在測試用例中輸入的任何運算符(+,-,*和/)”,我意識到這是因為Integer.valueOf ()不適用於符號,但這就是問題。 如果是符號,則不應該首先執行它。 我嘗試查找各種​​拼寫錯誤或愚蠢的語法錯誤,但沒有發現任何錯誤。 這種邏輯有什么問題?

您最好通過正則表達式檢查令牌是否為整數:

if (token.matches("\\d+")) {
    operandStack.push(Integer.parseInt(token));
}

然后將字符串解析為整數。

模式\\d+ (對於Java為雙轉義)匹配一個或多個數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM