0
這是我的計劃緩衝閱讀器無法讀取某些行
String thisSchool=buffer.readLine();
String thisLine;
while((thisLine = buffer.readLine()) != null){
if(thisLine=="*")
{
thisSchool=buffer.readLine();
}
else
{
School school = new School(thisSchool);
Student student = new Student(thisLine, school);
StudentList.add(student);
}
}
我的文本文件讀取像這樣:
School1
A
B
C
*
School2
D
E
*
School3
F
我的驅動程序類的輸出是:
A School1
B School1
C School1
* School1
School2 School1
D School1
E School1
* School1
School3 School1
F School1
這是我希望它看起來像
A School1
B School1
C School1
D School2
E School2
F School3
這裏的問題看起來什麼是 的「currentSchool」變量是永遠不會改變的,我不知道爲什麼! 「*」被視爲學生(我想用它作爲分隔符,即當程序遇到時它會忽略它)。相反,「如果行= *」命令被完全忽視,因此,學校從未改變,學生在被寫入錯誤
哇,我覺得現在真的不好... :) 謝謝! – user3000877
==比較有用,但在這種情況下不適用。 ==用於確定兩個基元是否相同,或者兩個對象是否是同一個對象。在這種情況下,它不起作用,因爲thisLine和「*」來自不同的來源,所以即使它們是相同的,它們也永遠不會==。這就是爲什麼你使用.equals(...) – Vitruvius
是的,我知道比使用==更好......我只是太專注於另一個語法錯誤,以注意到我的錯誤 – user3000877