【问题标题】:Accepting and sorting unlimited user input接受和排序无限的用户输入
【发布时间】:2013-10-16 19:22:43
【问题描述】:

我几天前才开始学习java,这是我尝试学习的第一门语言。所以,请原谅我的无知。

我正在尝试创建一个类来接受 无限 用户输入(以整数 5、10、15、500、10003 等形式)然后,当用户写入时停止接受输入“确定”进入命令行。然后收到要求升序或降序的提示。最后,根据用户的选择以升序或降序打印数字列表。

我认为编码不会太难。但是,我遇到了一些问题:

  1. 我正在尝试使用扫描仪接受用户输入并将其放入 ArrayList .... 但是,ArrayList 将只接受一种类型的变量(我需要放置所有整数输入在ArrayList 中,并在写入字符串“OK”时显示结果)。

  2. 我不知道如何打印ArrayList,以便数字按升序或降序显示在一行上。

如果有人可以给我写一个示例代码或指出我正确的方向,那将不胜感激。

【问题讨论】:

  • 我几天前才开始编码。我真的只是不知道如何编写代码,我从示例中学到了很多东西。不过我会再试一次。

标签: java sorting arraylist user-input


【解决方案1】:

如果未指定类型,则 ArrayList 将对象存储为 Object 类型。它可以 混合对象类型(String、MyClass、Array 等也是 Object 类型)。 Int 可以放在包装类 Integer 中。

没有类型检查。取决于您的编译器/IDE 设置您可能会收到警告:Name.java 使用未经检查或不安全的操作。

这是有风险的 - 所以上面的答案建议在输入“OK”之前最好使用 Do 循环。

【讨论】:

    【解决方案2】:

    它看起来像一个家庭作业:)

    检查输入是否转换为 int 将其添加到 int 数组中,如果等于“OK”则进行处理,否则忽略。处理是对数组进行排序,然后遍历它并执行:

    System.out.println(myArray.get(i)); // print will print inline println will print and go to next line.
    

    【讨论】:

    • 他问的不是数组,而是ArrayList
    • 不是作业。我正在尝试学习 Java,只是因为……我希望这是家庭作业!我只想问老师。
    【解决方案3】:

    您可以使用以下内容:

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.List;
    import java.util.Scanner;
    
    public class Main {
     public static void main(String[] args) {
    
        System.out.println("Please enter integer numbers , write 'OK' to exit");
    
    List<Integer>inputs=new ArrayList<Integer>();
    
    Scanner scanner=new Scanner(System.in);
    String input=scanner.next();
    while(!"OK".equalsIgnoreCase(input)){
        inputs.add(Integer.parseInt(input));
        input=scanner.next();
    }
    if(inputs.isEmpty())
        return;
    System.out.println("How would you like to sort 'ASC' or 'DSC'");
    input=scanner.next();
    if(input.equalsIgnoreCase("ASC")){
        Collections.sort(inputs);
    }
    else if(input.equalsIgnoreCase("DSC")){
        Collections.sort(inputs);
        Collections.reverse(inputs);
    }
    System.out.println(inputs);
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多