java - 如何要求用户输入字符串直到用户完成?

标签 java arraylist while-loop

Scanner scan = new Scanner(System.in);
        System.out.println("Enter the names of each song in the DJ's playlist: ");
        System.out.println("When finished, enter done.");
        ArrayList <String> NamesOfSongs = new ArrayList<>();
        boolean loop = true;
        while(loop)
        {
            String input = scan.nextLine();
            if (input.equals("done"))
            {
                break;
            }
            else
            {

                NamesOfSongs.add(scan.nextLine());
            }
        }
        System.out.println(NamesOfSongs);
        }

需要将输入字符串添加到ArrayList,直到用户输入“done”并且该方法完成。

结果:(在我输入 3 个字符串并完成两次之后)

Enter the names of each song in the DJ's playlist:
When finished, enter done.
jjjj
kkkkk
iiii
done
done
[kkkkk, done]

最佳答案

要比较字符串,您必须使用equals方法。 例如input.equals(“done”)。如果字符串“s”相等,则此方法返回true

在 else 代码中,您不得使用 NamesOfSongs.add(scan.nextLine());,因为您要求用户输入新值。您想要检索已输入的值 因此,使用 NamesOfSongs.add(input);

并且,要显示 ArraysList 的内容,您可以使用循环“for”

    /* Print the song*/
    for(int i = 0; i < NamesOfSongs.size(); i++) {
        System.out.println(NamesOfSongs.get(i));
    }
<小时/>
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the names of each song in the DJ's playlist: ");
    System.out.println("When finished, enter done.");
    ArrayList <String> NamesOfSongs = new ArrayList<>();
    boolean loop = true;

    while(loop) {
        String input = scan.nextLine();
        if(input.equals("done")) {
            /* Stop the input => stop while loop*/
            loop = false; 
        } else {
            /* add song */
            NamesOfSongs.add(input);
        }
    }

    /* Print the song*/
    for(int i = 0; i < NamesOfSongs.size(); i++) {
        System.out.println(NamesOfSongs.get(i));
    }
}

关于java - 如何要求用户输入字符串直到用户完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59922222/

相关文章:

java - 清楚表明重写方法应该调用 super 的好方法吗?

java - while 循环不会因异常而停止循环

mysql - 此代码不打印查询 ID?

c - 在我可以在循环中使用的相同变量名中 malloc 一些其他内存量之前,我需要采取哪些步骤?

java - java程序可以使用像 "HELLOWorld.class"这样的名字吗?

java - 如何在 Heroku 下的 java cedar 堆栈中强制执行 HTTPS

java - JSF : Elements of ArrayList are not rendered properly?

java - 需要澄清 addAll 方法的行为

java - 从 Oracle 存储过程访问 Web 服务

Java - 将对象的 ArrayList 传递给使用对象实现的接口(interface)的 ArrayList 的函数