我有一個「#」和「。」的二維數組。我正在傳入一個方法,然後我嘗試遍歷數組,並查找其中有多少個「#」。使用.equals時,我不斷收到NULLPOINTER異常。該方法應該返回數組中的「#」數量。我嘗試迭代2d數組,然後將2d轉換爲單維數組,並且仍然得到EXCEPTION我不知道我做錯了什麼,任何幫助將不勝感激。 我的代碼是:在java中使用.equals字符串引發NullPointer異常?
公共靜態INT countSeats(字符串[] [] AUD){
int openSeats = 0;
String [] audit;
audit = new String[120];
int k = 0;
for(int i= 0; i < aud.length; i++)
for(int j = 0; j < aud[i].length; j++)
audit[k++] = aud[i][j];
for(int i= 0; i <= audit.length; i++){
openSeats = audit[i].equals("#")? +1:+0;
}
return openSeats;
即使將符號更改爲<,異常仍然被拋出。編譯器似乎指向openSeats = audit [i] .equals(「#」)? +1:+0;我很確定這是檢查數組內容的一種可靠方法。每次迭代應該返回一個字符串,該字符串應該使用.equals方法與「#」進行比較,但我必須完全忽略某些內容。 –
如果您想增加值,請執行openSeats + = audit [i] .equals(「#」)? 1:0;'或者使用'if'和'openSeats ++'。 你現在得到的NullPointer異常可能是因爲'audit.length'總是120,這就是你定義它的原因。你實際上應該檢查'audit [i]'是否爲空,因爲你需要依賴它來知道你的數組在哪裏結束。否則,你可以使用ArrayList,而不必自己檢查空值。 – user2896976