0

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

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

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

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

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

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

4

3 回答 3

0

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

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

这是有风险的 - 所以上面的答案可能会更好地使用 Do 循环,直到输入“OK”。

于 2013-10-16T19:42:00.100 回答
0

it looks like a homework :)

You check the input if it converts to int you add it to the int array,if it is equal to 'OK' you do the processing, else you ignore. Processing is about sorting your array, then loop through it and do:

System.out.println(myArray.get(i)); // print will print inline println will print and go to next line.
于 2013-10-16T19:29:04.040 回答
0

您可以使用以下内容:

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);
}
}
于 2016-02-06T03:42:28.027 回答