2 回答
TA贡献1765条经验 获得超5个赞
正如@markspace 所说,您应该只检查数组的长度。
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]);
}
如果这个想法是只打印这样的名字,你可以这样做:
while ((str = in.readLine()) != null) {
String[] strArr = str.split(" ");
System.out.println(String.join(", ", strArr));
}
TA贡献1998条经验 获得超6个赞
我认为这是解决更大问题的一步。很高兴您开始通过实现代码来解决这个问题,只读取文件并打印出您解析的命令。像这样将较大的问题分解为较小的问题是计算机程序员的一项重要技能。但是,在这种情况下,您的简化忽略了有关输入的详细信息:有些命令有参数,有些没有。
一种解决方案是strArr[0]
在尝试使用strArr[1]
. 此命令确定是否需要任何其他参数。例如,如果strArr[0]
is "insert"
,那么您知道会有一个参数。但是,如果是"traverse"
,则不应该有任何参数,并且您不应该尝试访问,strArr[1]
因为您知道它不存在。
添加回答
举报