如何在Java中创建一个反转用户整数输入的程序?

时间:2014-11-26 19:35:33

标签: java reverse

好吧,我已经做了这个简单的开始,但我想不出一种方法来反转整数的用户输入。

我的开始:

public static void main(String[] args) {

    try {

    Scanner console = new Scanner (System.in);
    System.out.println("> ");
    String input = console.nextLine();
    while (! input.equals("quit")){ 
        System.out.println();
        System.out.print("> ");
        input = console.next();
    }
    }catch (Exception e){
        System.out.println("Error: Invalid Input");
    }
    System.out.println("Bye!"); 


}

所以,我希望用户输入如10 15 40 100 3400变为3400 100 40 15 10.我知道这是在某处使用array.tostring,但我不知道在哪里以及如何。

5 个答案:

答案 0 :(得分:2)

将每个输入存储在List<String>中,并在阵列上以相反的顺序迭代输出。

这是您的初始main()的转换版本。

public static void main(String[] args) {

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

    try {
        Scanner console = new Scanner (System.in);
        System.out.println("> ");
        String input = console.nextLine();
        out.add(input);

        while (!input.equals("quit")){ 
            input = console.next();
            out.add(input);
        }
        }catch (Exception e){
            System.out.println("Error: Invalid Input");
        }

        for(int i = out.size() - 1; i >=0; i--){
            System.out.println(out.get(i));
        }

        System.out.println("Bye!"); 
}

答案 1 :(得分:1)

像这样......

String myNum = "10 15 40 100 3400";
String[] numbers = myNum.split(" ");
List<String> myList = Arrays.asList(numbers);
Collections.reverse(myList); // myList will has 3400 100 40 15 10

答案 2 :(得分:1)

inputs添加到ArrayList,然后使用反向命令。

ArrayList<int> aList = new ArrayList<int>();

添加

aList.add(input);

要反转

Collections.reverse(aList);

答案 3 :(得分:1)

public static void main(String args[])
    {
        Integer[] ints = {10, 20, 5, 55}; // Get the input from user and for an Integer array
        List<Integer> integers= Arrays.asList(ints);
        Collections.reverse(integers);
        System.out.println(integers);

    }

输出:

[55, 5, 20, 10]

答案 4 :(得分:0)

对于这个问题,我将做一些假设:

a)您知道所有输入都是整数
b)你不需要用整数任何东西,只需打印它们(即:算术)
c)您只想撤销订单,而不是任何其他类型的订单 d)你的整数总是以空格分隔

如果假设B正确

由于您是以字符串形式读取输入,并且由于您的示例使用空格分隔值,因此您需要

1)分开输入和
2)单独打印(按相反顺序)

因此,要做第一点,您可以使用字符串实用程序根据字符分隔字符串。 How to split a string。如果您不熟悉数组,则引用here

它看起来像。

String input = console.nextLine();
String[] inputArray = input.split(" ");

此时,inputArray看起来像{"10", "15", "40", "100", "3400"}

现在您只需要一种以相反顺序显示每种方法的方法。一个简单的方法是使用for loop,因为您可以指导它,并且您知道它将执行多少次。由于您希望以相反的顺序打印,因此您将从最后开始并一直工作。像这样:

for (int i = inputArray.length - 1; i >= 0; i--) {

然后简单地打印出数组的元素,使你的循环看起来如此:

for (int i = inputArray.length - 1; i >= 0; i--) {
    System.out.println(inputArray[i]);
}

如果B组不正确

这意味着您需要以某种方式使用整数。这将简单地向前一个过程添加一步(即“如果假设B是正确的”),您将字符串转换(“解析”)为整数。所以从上一节的代码开始:

String input = console.nextLine();
String[] inputArray = input.split(" ");

for (int i = inputArray.length - 1; i >= 0; i--) {
    System.out.println(inputArray[i]);
}

我们首先想要创建一个用于保存整数的结构,然后我们要将每个字符串放入整数数组中。我们使用static Integer.valueOf(String input)方法执行此操作。

String input = console.nextLine();
    String[] inputArray = input.split(" ");

    // Array to hold integer values
    int[] inputIntArray = new int[inputArray.length];

    for (int i = 0; i < inputIntArray.length; i++) {
        inputIntArray[i] = Integer.valueOf(inputArray[i]);
    }

    for (int i = inputIntArray.length - 1; i >= 0; i--) {

        // Do whatever operations you want here

        System.out.println(inputIntArray[i]);
    }

然后你应该好。