我正在尝试从可能包含不同字数的文本文件中读取命令。我正在尝试使用IF语句,以便我不会让数组超出范围异常。 谁能告诉我我做错了什么?谢谢。 这是发生它的代码部分。
read = new Scanner(new File("Phone.txt"));
//this will loop thru file until end of file
while (read.hasNext())
{
whole = read.nextLine().trim();
String[] tokens = whole.split(" ");//array to split up line
command = tokens[0].toLowerCase();//all lines will have at least one word
if (tokens.length > 0)//if more than one word, 2nd will be name
{
name1st.setFirst(tokens[1]);
}
if (tokens.length > 1)//if more than one word, 3rd will be phone #
{
phone = tokens[2];
}
switch (command)
{
case "add":
nameList.add(name1st, phone);
break;
case "locate":
nameList.getValue(name1st);
break;
case "remove":
nameList.remove(name1st);
break;
case "print":
nameList.display();
}//end switch
}//end while
答案 0 :(得分:0)
数组索引从0.And开始。数组的长度等于数组中元素的数量。
if (tokens.length > 1)//if more than one word, 2nd will be name
{
name1st.setFirst(tokens[1]);
}
if (tokens.length > 2)//if more than one word, 3rd will be phone #
{
phone = tokens[2];
}
您可以按上述方式更正您的代码。
答案 1 :(得分:0)
好,
想通了。长度与索引不同。如果它的idex为0,则它的长度为1,所以我不得不在if by 1中提高我的条件。然后它运行了。感谢任何同时也在为此工作的人