0

我正在尝试编写一种搜索名称数组的方法;能够通过输入“*”作为输入字符串中的第一个字符或单独输入来退出搜索......逻辑似乎正在逃避我。我不确定我做错了什么。如果找到,则该方法应返回数组元素编号,否则返回-1。

public int searchNames(String [] names) throws IOException{
        Scanner keyboard = new Scanner(System.in);
        String line = "";
        while (line.charAt(0) != '*'){
            System.out.print("Enter a name to be searched, and an '*' to exit: ");
            line = keyboard.nextLine();
            for (int i = 0; i<name.length; i++){
                if (names[i].compareTo(line) == 0){return i;}
            }//end for loop
        }//end while loop

        return -1;

    }//end searchNames
4

2 回答 2

2
String line = "";
while (line.charAt(0) != '*'){

将抛出 ajava.lang.StringIndexOutOfBoundsException因为 index 处没有字符0

利用

String line = "";
while (!line.startsWith("*"))
于 2013-08-30T20:45:45.497 回答
0

你也可以使用

String line = "";
while(!line.startsWith("*"))

如果您希望以“*”开头的字符串取消搜索。

于 2013-08-30T20:48:12.017 回答