2 回答

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
正如@markspace 所說(shuō),您應(yīng)該只檢查數(shù)組的長(zhǎng)度。
while ((str = in.readLine()) != null) {
String[] strArr = str.split(" ");
if(strArr.length > 1)
System.out.println(strArr[0] + ", "+strArr[1]);
else
System.out.println(strArr[0]);
}
如果這個(gè)想法是只打印這樣的名字,你可以這樣做:
while ((str = in.readLine()) != null) {
String[] strArr = str.split(" ");
System.out.println(String.join(", ", strArr));
}

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
我認(rèn)為這是解決更大問(wèn)題的一步。很高興您開始通過(guò)實(shí)現(xiàn)代碼來(lái)解決這個(gè)問(wèn)題,只讀取文件并打印出您解析的命令。像這樣將較大的問(wèn)題分解為較小的問(wèn)題是計(jì)算機(jī)程序員的一項(xiàng)重要技能。但是,在這種情況下,您的簡(jiǎn)化忽略了有關(guān)輸入的詳細(xì)信息:有些命令有參數(shù),有些沒(méi)有。
一種解決方案是strArr[0]
在嘗試使用strArr[1]
. 此命令確定是否需要任何其他參數(shù)。例如,如果strArr[0]
is "insert"
,那么您知道會(huì)有一個(gè)參數(shù)。但是,如果是"traverse"
,則不應(yīng)該有任何參數(shù),并且您不應(yīng)該嘗試訪問(wèn),strArr[1]
因?yàn)槟浪淮嬖凇?/p>
添加回答
舉報(bào)