Java Collections.reverse方法不反转条目

Java Collections.reverse方法不反转条目,java,arraylist,collections,Java,Arraylist,Collections,我下面的代码应该从用户那里接受一个整数,然后以相反的顺序打印他们输入的任何整数。我没有得到任何错误,但是当我运行这个程序时,整数并没有被反向打印。有人能帮我找出原因吗 import java.util.*; public class ReverseDigits { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String response;

我下面的代码应该从用户那里接受一个整数,然后以相反的顺序打印他们输入的任何整数。我没有得到任何错误,但是当我运行这个程序时,整数并没有被反向打印。有人能帮我找出原因吗

import java.util.*;

public class ReverseDigits {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String response;

        System.out.println("Please enter a whole number.");
        response = sc.next();

        reverseDigit(response);
    }

    public static void reverseDigit(String digit) {
        ArrayList al = new ArrayList();
        al.add(digit);
        Collections.reverse(al);
        System.out.println("Your number in reverse order is: " + al);
    }

}
你误解了我的意思。此方法反转您提供的列表,而不是其内容。由于您使用具有单个元素的列表调用此方法,因此结果将是相同的列表

如果要反转字符串,请参阅

附带说明:不要使用原始类型,如
ArrayList
,这样会有麻烦。首选类型安全方式
ArrayList

你误解了它的作用。此方法反转您提供的列表,而不是其内容。由于您使用具有单个元素的列表调用此方法,因此结果将是相同的列表

如果要反转字符串,请参阅

附带说明:不要使用原始类型,如
ArrayList
,这样会有麻烦。首选类型安全方式
ArrayList

试试这段代码

ArrayList al = new ArrayList();
al.add(new StringBuffer(digit).reverse().toString());
试试这个代码

ArrayList al = new ArrayList();
al.add(new StringBuffer(digit).reverse().toString());

如果您有一个集合,则其顺序与“前进”的顺序相反

如果要反转整数的字符串表示形式,可以使用StringBuilder反转数字

StringBuilder sb = new StringBuilder();
sb.append(digits);
sb.reverse();
System.out.println("Your number in reverse order is: "+ sb);

如果您有一个集合,则其顺序与“前进”的顺序相反

如果要反转整数的字符串表示形式,可以使用StringBuilder反转数字

StringBuilder sb = new StringBuilder();
sb.append(digits);
sb.reverse();
System.out.println("Your number in reverse order is: "+ sb);

如果要反转
字符串
为什么要将其添加到列表中

使用以下命令:

         String s = sc.next();
         StringBuilder sb = new StringBuilder(s);
         System.out.println(sb.reverse());

如果要反转
字符串
为什么要将其添加到列表中

使用以下命令:

         String s = sc.next();
         StringBuilder sb = new StringBuilder(s);
         System.out.println(sb.reverse());
reverse(List)
方法用于反转指定列表中元素的顺序。由于集合中只有一项,因此顺序与初始列表相反。您可以在尝试反转整数时使用以下代码

package com.stackoverflow.answer;

import java.util.*;

public class ReverseDigits {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Please enter a whole number: ");
        int number = scanner.nextInt();
        System.out.println(String.format("Your number in reverse order is: %d", reverse(number)));
        scanner.close();
    }

    public static int reverse(int x) {
        return reverse(x, 0);
    }

    private static int reverse(int x, int y) {
        return x == 0 ? y : reverse(x / 10, y * 10 + x % 10);
    }

}
reverse(List)
方法用于反转指定列表中元素的顺序。由于集合中只有一项,因此顺序与初始列表相反。您可以在尝试反转整数时使用以下代码

package com.stackoverflow.answer;

import java.util.*;

public class ReverseDigits {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Please enter a whole number: ");
        int number = scanner.nextInt();
        System.out.println(String.format("Your number in reverse order is: %d", reverse(number)));
        scanner.close();
    }

    public static int reverse(int x) {
        return reverse(x, 0);
    }

    private static int reverse(int x, int y) {
        return x == 0 ? y : reverse(x / 10, y * 10 + x % 10);
    }

}

非常感谢你!我将阅读更多关于ArrayList的内容,您的链接解决了我的问题。非常感谢!我将阅读更多关于ArrayList的内容,您的链接解决了我的问题。请不要使用StringBuffer,它是十多年前更换的。请不要使用StringBuffer,它是十多年前更换的。