【问题标题】:read user input into an array list?将用户输入读入数组列表?
【发布时间】:2018-10-31 06:18:51
【问题描述】:

我有这段代码可以将用户输入读入一个数组列表。如何使用字符串数组列表而不是整数来编写相同的代码。

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

    ArrayList<Integer> input = new ArrayList<Integer>();
    System.out.println("Enter some numbers");

    while (scan.hasNextInt()) {
        input.add(scan.nextInt());
    }
    System.out.println(input);
}

【问题讨论】:

  • 来吧,试试吧,我相信你至少可以自己走到一半。
  • 我试过了,但没有运气。我只是没有在此处发布问题。
  • 如果我们看不到您的错误,我们如何解决它们?

标签: java arraylist


【解决方案1】:

只需将ArrayList&lt;Integer&gt; 替换为ArrayList&lt;String&gt;。然后您可以使用Scanner.hasNext() 来检查有效输入,然后将其扫描到带有String foo = Scanner.next() 之类的字符串。请注意,.next() 仅读取下一个空格的输入,因此如果您想读取多个单词,Scanner.hasNextLine()Scanner.nextLine() 是您想要的方法(因为它们读取下一个换行符的输入)。

【讨论】:

    【解决方案2】:

    Scanner 类有next();nextLine(); 方法,可以用来获取字符串形式的数据。 使用next(); 方法将阻塞代码直到它获得输入。所以nextLine(); 方法可以用来获取完整的字符串,并且可以使用分隔符将字符串拆分为标记

     private static Scanner scan = new Scanner(System.in);
     public static void main(String args[]) {
    
            ArrayList<String> input = new ArrayList<String>();
            System.out.println("Enter some String :");
            String ip=scan.nextLine();         
            input.addAll(Arrays.asList(ip.split("\\s")));  
    
            System.out.println(input);
      }
    

    【讨论】:

    • System.out.println("Enter some numbers"); - 是的
    • 好的@Scary Wombat。我会优化它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2012-03-03
    相关资源
    最近更新 更多