【问题标题】:List the components of an array created from user input列出从用户输入创建的数组的组件
【发布时间】:2020-10-12 00:05:44
【问题描述】:

我正在尝试列出从扫描仪输入创建的数组的组件。 示例...

 System: Enter a list of words:

 User: The weather is nice today

 System: [The, weather, is, nice, today]

我的代码如下,

import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListPractice
{
    public static void main(String[] args)
    {
        ArrayList<String> word=new ArrayList<String>();
        System.out.println("Enter a list of words:");
        Scanner keyboard = new Scanner(System.in);    
        String n = keyboard.next();
       
        while(keyboard.hasNext()){
            word.add(keyboard.next());
        }
        System.out.println(word);
   }
}

我的问题是扫描仪一直在等待输入,因此不显示任何输出。我也尝试过不同的 for 循环,但无法弄清楚。下面列出了我尝试过的一个示例。这个只显示用户输入的前两个单词

        for (int i=0; I<n.length(); i++){
            word.add(n);
            n = keyboard.next();
        }
        System.out.println("a) \n"+word);

任何提示将不胜感激,在此先感谢您!

【问题讨论】:

  • 试试this
  • 如何循环并像“输入一个新单词或按'enter'退出”
  • 感谢@elpidaguy,但这是针对编码课程的,我们还没有被教过“拆分”,所以很遗憾我不能使用它
  • @ΦXocę웃Пepeúpaツ 我知道该怎么做,但我们有一个非常具体的模板要遵循,其中不包括退出术语。还是谢谢你!

标签: java arrays java.util.scanner


【解决方案1】:

这里不需要 while 循环。只需将用户输入的作为String,然后您可以使用String.split()将其拆分成一个单词数组。

System.out.println("Enter a list of words:");
Scanner keyboard = new Scanner(System.in);    
String line = keyboard.nextLine();
String[] words = line.split(" ");

for (String word : words)
 System.out.println(word);

输出:

Enter a list of words:
Hello I am who I am
Hello
I
am
who
I
am

编码类的替代方案

System.out.println("Enter a list of words:");
Scanner keyboard = new Scanner(System.in);    
ArrayList<String> words = new ArrayList<>();

String word = "quit";

do{
    word = keyboard.next();

    if (!word.equals("quit"))
        words.add(word);

}while (!word.equals("quit"));

for (String w : words)
    System.out.println(w);

【讨论】:

  • 感谢您的回复@Themelis!不幸的是,这是针对编码课程的,我们还没有被教过“拆分”,所以我不能使用它
  • 您还有什么建议吗?
猜你喜欢
  • 2016-01-10
  • 2014-11-06
  • 2015-08-14
  • 2014-06-17
  • 2013-08-04
  • 2020-02-27
  • 2018-12-01
  • 1970-01-01
  • 2020-02-16
相关资源
最近更新 更多