0
代碼:錯誤輸出,我想不通爲什麼
ArrayList<Employer> use = new ArrayList<Employer>();
ArrayList<String> Alia = new ArrayList<String>();
int moneyE, moneyF;
String Alias = "";
boolean alert, alertF;
for(int i = 0; i < Filers.size(); i++)
{
moneyE=0;
use.clear();
Alia.clear();
Alias = "";
alert = false; alertF = false;
use.addAll(this.findEmployerRecords(Filers.get(i)));
moneyF = Filers.get(i).getIncome();
for(int j = 0; j< use.size(); j++)
{
moneyE += use.get(j).getEmployeeWages();
if(!(Filers.get(i).getName().equals(use.get(j).getEmployeeName()))
&& !(Alia.contains(use.get(j).getEmployeeName())))
Alia.add(use.get(j).getEmployeeName());
if(moneyE !=moneyF
&& !(Filers.get(i).getName().substring(0, Filers.get(i).getName().indexOf(" ")+1).equals(
use.get(j).getEmployeeName().substring(0, use.get(j).getName().indexOf(" ")+1)))) //problem occurs here
alert = true;
if (alert = true)
alertF = true;
}
for(int j=1; j<Alia.size();j++)
Alias+= (", " + Alia.get(j));
if (moneyE != moneyF)
Discrepancies.add(new Discrepancy(alertF, moneyF-moneyE, Filers.get(i).getName(),
Filers.get(i).getSSN(), Alias));
}
我在我的棒結束。我無法弄清楚我在這裏做錯了什麼。這是我用來創建虛擬IRS的一些代碼。如果我在問題點刪除+1,我會得到一個超出限制的異常。我遇到的問題是警報和alertF。如果貨幣E和貨幣F不匹配,並且僱主記錄和歸檔人員之間的姓氏拼寫不同,則警報狀態應該消失。警報以星號顯示。
預計:
*-100, HEATON MARK, 309582302, MCGUIRE MARK
*-50, FOX CHARLES, 724113610, BOX CHARLES
+105, MOFFITT DONALD, 206516583, MOFFITT DON
+100, YOUNG THOMAS, 813068590, YOUNG THOM, YOUNG TOM
-20, SOMASUNDAR PRASANTH, 138001926
+5, HORSLEY MARIA, 239984300
+5, LIANG BO, 743287509
+5, LIANG BO, 857410861
實際:
*105, MOFFITT DONALD, 206516583
*-100, HEATON MARK, 309582302, HEATON MARK
*100, YOUNG THOMAS, 813068590, YOUNG TOM
*-50, FOX CHARLES, 724113610
*-20, SOMASUNDAR PRASANTH, 138001926
*5, HORSLEY MARIA, 239984300
*5, LIANG BO, 743287509
*5, LIANG BO, 857410861
你應該附加一個調試器,並通過您的代碼步,看看你的問題所取代。 – mkobit 2014-10-02 01:33:07
用完整的堆棧跟蹤發佈您的異常。 – 2014-10-02 01:37:19
在最後一個for循環中,您將'j'初始化爲1,那可以嗎? – 2014-10-02 01:42:51