如何从ArrayList中打印出输入的内容[重复]。

问题描述 投票:0回答:2

我需要编写一个程序,不断地询问用户的输入。但是,当用户输入 "无 "时,程序应该停止要求输入,并打印出在输入 "无 "之前的所有输入。(不包括 "无")。

我使用的是一个数组列表,但当我输入 "无 "时,程序应该停止要求输入,并打印出在输入 "无 "之前的所有内容(不包括 "无")。然而,当我输入 "无 "时,程序仍然要求用户输入。这是我的代码。

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

public class ShoppingList {

public static void main(String[] args) {

    List<String> Items = new ArrayList<String>();

    Scanner keyboard = new Scanner(System.in);
    System.out.println ("Enter name of item: ");

    String item;

    while(keyboard.hasNextLine()) {
        item = keyboard.nextLine();

        if (item != "None") {
            System.out.println("Item added: " + item);
            Items.add(item);
    }
      else
       break;
    }

    System.out.println("End of list");
    System.out.println();

    for (String i : Items) {
        System.out.println(i);
         }

    }

}
java arraylist user-input
2个回答
1
投票

所以,你需要把.NET代码改成 "无"。

if (item != "None")

为。

if (!item.equals("None"))

对于字符串,你使用equals()函数。!=在这种情况下是行不通的。


0
投票

你可以使用这个。

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

public class ShoppingList {
  public static void main(String[] args) {

  List<String> Items = new ArrayList<String>();

  Scanner keyboard = new Scanner(System.in);

  while (true) {
    System.out.print("Enter name of item: ");
    String item = keyboard.nextLine();

    if (!item.equalsIgnoreCase("none")) {
      Items.add(item);
      System.out.println("Item added: " + item);
    } else break;
  }

  System.out.println("End of list");
  System.out.println();

  for (String i : Items) {
  System.out.println(i);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.