如何将用户输入添加到 ArrayList 中直到关键字触发它停止?
How to add user input into an ArrayList until a keyword triggers it to stop?
所以我正在尝试编写一个 Java 程序,允许用户在命令行输入单词。当用户输入 "STOP" 时,程序应该停止接受单词。将单词存储在 ArrayList 中。 STOP 一词不应存储在列表中。
接下来,打印列表的大小,然后是列表的内容。
然后,删除存储在列表中的第一个和最后一个单词,但前提是列表的长度大于两个。最后转载榜单内容
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class t2_lesson1_template {
public static void main (String str[]) throws IOException
{
ArrayList<String> list = new ArrayList<String>();
Scanner scan = new Scanner(System.in);
do
{
System.out.println("What would you like to add to the list?");
String input = scan.nextLine();
list.add(input);
}
while( scan.nextLine() != "STOP");
if ( list.size() < 2)
{
System.out.println(list);
System.out.println(list.size());
}
else
{
list.remove(0);
list.remove(list.size()-1);
System.out.println(list);
System.out.println(list.size());
}
}
}
它一直在提示问题,但从不识别何时输入"STOP"。如果有人可以帮我弄清楚出了什么问题,那会很有帮助。谢谢!
将scan.nextLine() != "STOP"
更改为while(!scan.nextLine().equalsIgnoreCase("stop"));
并尝试。
原因:
String Literal "STOP"
将与从键盘输入的字符串值 "STOP"
不同(在您的情况下)。 ==
比较引用。您必须检查 2 个字符串的值而不是引用。
行内:
scan.nextLine() != "STOP"
您比较对两个对象的引用。如果你需要比较对象,你应该使用 Object 的 equals() 方法。
阅读 the documentation 中的 equals()。
但是你的代码还有一个问题。你读下一行两次。
在循环和 while(...) 语句中。
试试这个:
System.out.println("What would you like to add to the list?");
String input = scan.nextLine();
while(!input.equals("STOP"))
{
list.add(input);
input = scan.nextLine();
}
试试下面的代码:-
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class t2_lesson1_template {
public static void main(String str[]) throws IOException {
ArrayList<String> list = new ArrayList<String>();
Scanner scan = new Scanner(System.in);
System.out.println("What would you like to add to the list?");
String input = scan.nextLine();
while (!input.equals("STOP")) { // compare string using equals(Object o) method
list.add(input);
System.out.println("What would you like to add to the list?");
input = scan.nextLine();
}
System.out.println("Size of list = " + list.size());
System.out.println("Input list:-\n" + list);
if (list.size() > 2) {
list.remove(0);
list.remove(list.size() - 1);
System.out.println("List after removing first and last eliment:-\n" + list);
}
}
}
import java.io.*;
import static java.lang.System.*;
import java.util.Scanner;
import java.lang.Math;
import java.util.ArrayList;
public class U7_L1_Activity_One{
public static void main (String str[]) throws IOException {
ArrayList<String> list = new ArrayList<String>();
Scanner scan = new Scanner(System.in);
System.out.println("Please enter words, enter STOP to stop the loop.");
String input = scan.nextLine();
while (!input.equals("STOP")) { // compare string using equals(Object o) method
list.add(input);
input = scan.nextLine();
}
System.out.println(list.size());
System.out.println(list);
// System.out.println("Size of list = " + list.size());
//System.out.println("Input list:-\n" + list);
if (list.size() > 2) {
list.remove(0);
list.remove(list.size() - 1);
System.out.println(list);
// System.out.println("List after removing first and last eliment:-\n" + list);
}
System.out.println(list);
}
}
所以我正在尝试编写一个 Java 程序,允许用户在命令行输入单词。当用户输入 "STOP" 时,程序应该停止接受单词。将单词存储在 ArrayList 中。 STOP 一词不应存储在列表中。
接下来,打印列表的大小,然后是列表的内容。
然后,删除存储在列表中的第一个和最后一个单词,但前提是列表的长度大于两个。最后转载榜单内容
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class t2_lesson1_template {
public static void main (String str[]) throws IOException
{
ArrayList<String> list = new ArrayList<String>();
Scanner scan = new Scanner(System.in);
do
{
System.out.println("What would you like to add to the list?");
String input = scan.nextLine();
list.add(input);
}
while( scan.nextLine() != "STOP");
if ( list.size() < 2)
{
System.out.println(list);
System.out.println(list.size());
}
else
{
list.remove(0);
list.remove(list.size()-1);
System.out.println(list);
System.out.println(list.size());
}
}
}
它一直在提示问题,但从不识别何时输入"STOP"。如果有人可以帮我弄清楚出了什么问题,那会很有帮助。谢谢!
将scan.nextLine() != "STOP"
更改为while(!scan.nextLine().equalsIgnoreCase("stop"));
并尝试。
原因:
String Literal "STOP"
将与从键盘输入的字符串值 "STOP"
不同(在您的情况下)。 ==
比较引用。您必须检查 2 个字符串的值而不是引用。
行内:
scan.nextLine() != "STOP"
您比较对两个对象的引用。如果你需要比较对象,你应该使用 Object 的 equals() 方法。
阅读 the documentation 中的 equals()。
但是你的代码还有一个问题。你读下一行两次。 在循环和 while(...) 语句中。
试试这个:
System.out.println("What would you like to add to the list?");
String input = scan.nextLine();
while(!input.equals("STOP"))
{
list.add(input);
input = scan.nextLine();
}
试试下面的代码:-
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class t2_lesson1_template {
public static void main(String str[]) throws IOException {
ArrayList<String> list = new ArrayList<String>();
Scanner scan = new Scanner(System.in);
System.out.println("What would you like to add to the list?");
String input = scan.nextLine();
while (!input.equals("STOP")) { // compare string using equals(Object o) method
list.add(input);
System.out.println("What would you like to add to the list?");
input = scan.nextLine();
}
System.out.println("Size of list = " + list.size());
System.out.println("Input list:-\n" + list);
if (list.size() > 2) {
list.remove(0);
list.remove(list.size() - 1);
System.out.println("List after removing first and last eliment:-\n" + list);
}
}
}
import java.io.*;
import static java.lang.System.*;
import java.util.Scanner;
import java.lang.Math;
import java.util.ArrayList;
public class U7_L1_Activity_One{
public static void main (String str[]) throws IOException {
ArrayList<String> list = new ArrayList<String>();
Scanner scan = new Scanner(System.in);
System.out.println("Please enter words, enter STOP to stop the loop.");
String input = scan.nextLine();
while (!input.equals("STOP")) { // compare string using equals(Object o) method
list.add(input);
input = scan.nextLine();
}
System.out.println(list.size());
System.out.println(list);
// System.out.println("Size of list = " + list.size());
//System.out.println("Input list:-\n" + list);
if (list.size() > 2) {
list.remove(0);
list.remove(list.size() - 1);
System.out.println(list);
// System.out.println("List after removing first and last eliment:-\n" + list);
}
System.out.println(list);
}
}