如何制作一个程序,在Java中反转用户输入的整数?

如何制作一个程序,在Java中反转用户输入的整数?,java,reverse,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")){

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

我的开始:

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!"); 


}

所以,我希望用户输入,比如1015401003400,变成34001004010。我知道这是cal use array.tostring,但我不知道在哪里以及如何使用。

类似这样的东西

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

像这样的

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
将输入添加到ArrayList,然后使用reverse命令

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

Collections.reverse(aList);
将输入添加到ArrayList,然后使用reverse命令

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

Collections.reverse(aList);
将每个输入存储在一个列表中,并在输出数组上按相反顺序迭代

这是您最初的main的转换版本

将每个输入存储在一个列表中,并在输出数组上按相反顺序迭代

这是您最初的main的转换版本


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

a你知道所有的输入都是整数 b你不需要对整数做任何事情,只要把它们打印出来,即:算术 你只想颠倒顺序,而不是任何其他类型的顺序 你的整数总是用空格隔开

如果假设B是正确的

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

1将输入和输出分开 2按相反顺序分别打印

因此,要完成第一点,您可以使用一个字符串实用程序,它根据一个字符分隔字符串。如果您不熟悉数组,请参阅

它看起来像

String input = console.nextLine();
String[] inputArray = input.split(" ");
此时,inputArray看起来像{10,15,40,100,3400}

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

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]);
}
我们首先要创建一个保存整数的结构,然后将每个字符串放入整数数组。我们使用这个方法来实现这一点


那么你应该很好。

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

a你知道所有的输入都是整数 b你不需要对整数做任何事情,只要把它们打印出来,即:算术 你只想颠倒顺序,而不是任何其他类型的顺序 你的整数总是用空格隔开

如果假设B是正确的

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

1将输入和输出分开 2按相反顺序分别打印

因此,要完成第一点,您可以使用一个字符串实用程序,它根据一个字符分隔字符串。如果您不熟悉数组,请参阅

它看起来像

String input = console.nextLine();
String[] inputArray = input.split(" ");
此时,inputArray看起来像{10,15,40,100,3400}

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

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]);
}
我们首先要创建一个保存整数的结构,然后将每个字符串放入整数数组。我们使用这个方法来实现这一点


那你应该很好。

你尝试过什么吗?这基本上只是要求我们为你编写程序。你想实现反转还是使用库方法?因为你不知道要接收多少个整数,你可能想使用arraylist动态数组变量长度的整数。只需用整数填充arraylist,然后创建另一个for循环,以反向顺序循环arraylist并打印每个整数。将每个元素转换为某种列表/数组,并使用冒泡排序对其进行排序…您尝试过什么吗?这基本上只是要求我们为您编写程序。您想实现反向还是使用冒泡排序库方法?因为您不知道要接收多少个整数,所以可能需要使用arraylist动态数组变量长度的整数。

只需用整数填充arraylist,然后创建另一个for循环,以相反顺序循环arraylist并打印每个整数。将每个元素打印到某种列表/数组中,并使用冒泡排序对其进行排序…100 200变为002 001100 200变为002 00100非常详细。我并没有考虑使用数组,但现在我明白了使用它是必要的。它们适用于这个简单的示例,但是还有其他的实现可以工作。更多地考虑这个答案中涉及的基本步骤,而不是数据结构,这样就不会在一个解决方案上产生幻觉。列表或堆栈可以很容易地解决这个问题。很高兴我能帮上忙。哦,arraylist和array有很大的不同。我懂了。需要多读一点。他们是不同的,是的。但是,它们可以使用相同的方法,但使用差异最小。例如,对于数组,您使用someArray[index]访问成员,而对于ArrayList和任意列表,您将执行someList.getindex。启动时最大的区别是ArrayList具有动态大小,因此可以继续添加,而数组具有固定大小。因此,如果您的数组已满,并且需要添加一个数组,则需要创建一个新数组,但使用一个列表,您只需要someList.addnewElement.Very detailed。我并没有考虑使用数组,但现在我明白了使用它是必要的。它们适用于这个简单的示例,但是还有其他的实现可以工作。更多地考虑这个答案中涉及的基本步骤,而不是数据结构,这样就不会在一个解决方案上产生幻觉。列表或堆栈可以很容易地解决这个问题。很高兴我能帮上忙。哦,arraylist和array有很大的不同。我懂了。需要多读一点。他们是不同的,是的。但是,它们可以使用相同的方法,但使用差异最小。例如,对于数组,您使用someArray[index]访问成员,而对于ArrayList和任意列表,您将执行someList.getindex。启动时最大的区别是ArrayList具有动态大小,因此可以继续添加,而数组具有固定大小。因此,如果您的数组已满,需要添加一个数组,则需要创建一个新数组,但使用一个列表,您只需要someList.addnewElement。如何使它工作?我需要进口什么?我无法运行此代码。您必须导入java.util.ArrayList、java.util.List和java.util.Scanner。为什么我需要同时导入java.util.List和ArrayList?因为这一行List out=new ArrayList;O、 我知道了。谢谢,我能让它工作吗?我需要进口什么?我无法运行此代码。您必须导入java.util.ArrayList、java.util.List和java.util.Scanner。为什么我需要同时导入java.util.List和ArrayList?因为这一行List out=new ArrayList;O、 我知道了。谢谢