3 回答

TA貢獻(xiàn)1827條經(jīng)驗 獲得超9個贊
一種解決方案是將變量放入諸如 an 之類的數(shù)據(jù)結(jié)構(gòu)中ArrayList,然后執(zhí)行以下操作:
ArrayList<String> arr = new ArrayList<>();
while(scan.hasNextLine()) {
arr.add(scan.nextLine());
}
這樣您就可以確保有下一行并且您不必對分配變量進(jìn)行硬編碼。
那么arr[0]將會是definition,arr[1]將會是otherInfo,arr[2]將會是link

TA貢獻(xiàn)1830條經(jīng)驗 獲得超9個贊
你需要檢查是否有對下一行otherInfo和link,在檢查definition中做到while (scan.hasNextLine()):
while(scan.hasNextLine()) {
definition = scan.nextLine();
if (scan.hasNextLine()) {
otherInfo = scan.nextLine();
if (scan.hasNextLine())
link = scan.nextLine();
}
}
但問題是你從這個循環(huán)中得到了什么?
只是閱讀行而不保存它們,或打印它們?
循環(huán)在某個時刻結(jié)束,3 個變量有它們的最后 3 個值。

TA貢獻(xiàn)1864條經(jīng)驗 獲得超6個贊
你的文件總是有你關(guān)心的三件事嗎?如果是這樣,請使用 for 循環(huán)而不是 while 循環(huán)來簡化問題。這樣你就不必?fù)?dān)心尾隨的換行符(這是常見的)把你搞砸了。
for(int i = 0; i < 3; i++) {
definition = scan.nextLine();
otherInfo = scan.nextLine();
link = scan.nextLine();
}
添加回答
舉報