所以我试图编写一个允许用户在命令行输入单词的Java程序。当用户输入" STOP"时,程序应停止接受单词。将单词存储在ArrayList中。单词STOP不应存储在列表中。
接下来,打印列表的大小,然后打印列表的内容。
然后,删除列表中存储的第一个和最后一个单词,但前提是列表的长度大于2。最后,重新打印列表的内容。
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());
}
}
}
它一直在提示问题,但从未意识到&#34;停止&#34;是输入。如果有人可以帮我弄清楚什么是错的,它会帮助很多。谢谢!
答案 0 :(得分:2)
将scan.nextLine() != "STOP"
更改为while(!scan.nextLine().equalsIgnoreCase("stop"));
并尝试。
原因:
String Literal "STOP"
与从键盘输入的字符串值"STOP"
不同(在您的情况下)。 ==
比较参考文献。你必须检查2个字符串的值而不是引用。
答案 1 :(得分:1)
排队:
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();
}
答案 2 :(得分:1)
请尝试以下代码: -
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);
}
}
}
答案 3 :(得分:0)
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);
}
}