0

我试图判断是否在列表中找到了该字符串。例如,如果我将 Max 放在我的列表中并搜索 Max,它应该说“Max was found”如果没有,那么它应该说“Max was not found”

我不知道如何从这里得到答案。

import java.util.ArrayList;
import java.util.Scanner;

public class OnTheList {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        ArrayList<String> list = new ArrayList<>();
        while (true) {
            String input = scanner.nextLine();
            if (input.equals("")) {
                break;
            }

            list.add(input);

        }

        System.out.print("Search for? ");
        System.out.print(scanner.nextLine());


        if (list.contains(list)) ----> I think this is the part where I am not getting it
            System.out.println(" was found!");
        else 
            System.out.println(" was not found");

    }
}
4

2 回答 2

1

您可以存储要搜索的单词,在这里您需要它scanner.nextLine()并打印它但没有保存它。然后使用您保存单词的变量,检查List

System.out.print("Search for? ");
String toSearch = scanner.nextLine();

if (list.contains(toSearch)) 
    System.out.println(toSearch + " was found!");
else 
    System.out.println(toSearch + " was not found");
于 2020-06-17T07:11:21.737 回答
0

在这里,您没有存储从 Search for 获得的用户输入,并且您正在尝试搜索列表的元素,但将列表作为 contains() 方法的参数传递,因此首先将用户输入存储为变量通过将输入作为参数传递给 contains() 方法来搜索输入,并确保在程序结束时关闭扫描仪变量以避免如下所示的内存泄漏。

import java.util.ArrayList;
import java.util.Scanner;

public class OnTheList {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    ArrayList<String> list = new ArrayList<>();
    while (true) {
        String input = scanner.nextLine();
        if (input.equals("")) {
            break;
        }

        list.add(input);

    }

    System.out.print("Search for? ");
    String toSearch = scanner.nextLine(); 


    if (list.contains(toSearch))  
        System.out.println(" was found!");
    else 
        System.out.println(" was not found");

    scanner.close();

}
}
于 2020-06-17T07:38:44.137 回答