2012-12-10 28 views
0

我有這個輸入 「4 + 4-(4 + 4 +(4 + 4)))」 中的字符串 「餘額陣列」不等於在Java

我試圖執行該代碼的陣列:

String expression = ""; 
for(int j=2 ; j<balance.length-1 ; j++) 
{ 
    if(!(balance[j].equals("+")) || !(balance[j].equals("-")) || !(balance[j].equals("(")) || !(balance[j].equals(")"))) 
      expression = expression + balance[j]; 
} 

在代碼的末尾,表達式應該包含「444444」,但它不起作用。

我使用了!.equals事情&的||錯誤的方式?

我想用這些語句4相結合||它們之間。

+0

有什麼'balance'數組,那麼的確切類型和內容是什麼?如果你正在迭代它,它不應該只是你提到的一個字符串。你有沒有嘗試在調試器中逐句通過你的代碼? – millimoose

+1

你爲什麼從第二個索引開始? – PermGenError

+0

你應該使用[regex](http://www.vogella.com/articles/JavaRegularExpressions/article.html)代替 - 模式匹配會更容易理解和修改。 – Jeff

回答

0

使用

if(!((balance[j].equals("+")) || (balance[j].equals("-")) || (balance[j].equals("(")) || (balance[j].equals(")")))) 

for(int j=0 ; j<=balance.length-1 ; j++) 
+0

夥計,我沒有使用J = 0,因爲它有一個空間作爲一個字符串 ,因爲它有(我想刪除我沒有使用J = 1 .. 所以我更喜歡j = 2 ..得到我? 第一個代碼u張貼看起來更自然,似乎工作,因爲我想..我會檢查它然後我發佈答案 謝謝 –

+0

嗯... 這是有道理的 –

+0

它的工作..謝謝你 –

7

改變所有的||&&

 if (!balance[j].equals("+") && !balance[j].equals("-") && 
     !balance[j].equals("(") && !balance[j].equals(")")) 

而且,兩者的j起始值和循環的終止條件看起來前途未卜。