我定义了一个随机数,我想检查它是否是回文java

我定义了一个随机数,我想检查它是否是回文java,java,palindrome,Java,Palindrome,Java有内置的方法来反转字符串 import java.util.Random; public class Loop6 { public static void main(String[] args) { Random number = new Random(); int value = number.nextInt(1000); System.out.println("random number : " + " " + value)

Java有内置的方法来反转字符串

import java.util.Random;

public class Loop6 {
    public static void main(String[] args) {

        Random number = new Random();
        int value = number.nextInt(1000);
        System.out.println("random number : " + " " + value);

        int rev = 0;
        int dig;

        while (value > 0) {
            dig = value % 10;
            rev = rev * 10;
            rev = rev + dig;
            value = value / 10;
        }
        System.out.println("rev is : " + "" + rev);
        if(value==rev) {
            System.out.println("Palindrome");

        }

    }
}
解决方案:

String originalValue = value + "";
StringBuilder stringBuilder = new StringBuilder(originalValue);
String reverseValue = stringBuilder.reverse().toString();

if (originalValue.equals(reverseValue)) System.out.println("Palindrome");

谢谢:)

您的代码很好,只是您正在更新初始随机数,这不是您想要的。为了尽量减少对代码的更改,我建议您添加一个新变量,并将其与反向算法的结果进行比较

public class Test {

    public static void main(String[] args) {
        Random number = new Random();
        int value = number.nextInt(1000);
        System.out.println("Original number : " + " " + value);
        int tmp = value;
        int result = 0;
        while (tmp != 0) {
            result = result * 10 + (tmp % 10);
            tmp = tmp / 10;
        }
        System.out.println("Reversed Number : " + " " + result);
        if (result != value) {
            System.out.println("Not Palindrome");
        } else {
            System.out.println("Palindrome");
        }

    }

}

value
的值存储在临时变量中,然后将临时变量与
rev
进行比较。不要更改值,使用值初始化另一个变量并对该变量进行计算。有什么问题吗?如果((value+“”)等于(new StringBuilder().append(value).reverse().toString()),则可以执行
操作
+1贪婪,但考虑到作者的Java专业知识(严格来说是IMHO),我想要一个更具可读性的解决方案。同意,这就是为什么我对您的答案发表了评论,而不是发布它;)
import java.util.Random;

public class Loop6 {
    public static void main(String[] args) {

        Random number = new Random();
        int randomNumber = number.nextInt(1000);  // introduce the initial variable
        int value = randomNumber;  // introduce the variable that will be updated
        System.out.println("random number : " + " " + value);

        int rev = 0;
        int dig;

        while (value > 0) {
            dig = value % 10;
            rev = rev * 10;
            rev = rev + dig;
            value = value / 10;
        }
        System.out.println("rev is : " + "" + rev);
        if (randomNumber == rev) {  // compare the initial variable and the reverse result
            System.out.println("Palindrome");

        }

    }
}