请参阅下面的Java代码以获取回文。
    这是为了检查代码逻辑是对还是错


/* Please expalin why this logic is wrong*/

public class IntegerIsPalindrome {
    public static boolean numPalindrome(int x){
        String ParseNum = Integer.toString(x);
        int lenPar = ParseNum.length();
        for(int i = 0 ; i < ParseNum.length();i++){
            if(ParseNum.charAt(0) != ParseNum.charAt(lenPar -1 -i)){
                return false;
            }
        }
        return true;
    }
    public static void main(String args[]){
        boolean result = numPalindrome(323);
        System.out.println(result);
    }
}

最佳答案

这是因为您总是比较第一个字符。特别:

ParseNum.charAt(0)...


您应该将其更改为:

ParseNum.charAt(i)...


查看323,比较第一个字符“ 3”和最后一个字符“ 3”。然后,将第一个“ 3”与“ 2”进行比较,结果为false。

关于java - 为什么这种逻辑对整数回文是错误的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46950273/

10-10 11:53