Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 回文检查器似乎将单个字符上方的每个数字都转储到我的else语句中_Java_Swing_Palindrome - Fatal编程技术网

Java 回文检查器似乎将单个字符上方的每个数字都转储到我的else语句中

Java 回文检查器似乎将单个字符上方的每个数字都转储到我的else语句中,java,swing,palindrome,Java,Swing,Palindrome,当我将此部分切换到isPali=True时,我已经执行了一些测试: else{ isPali = false; p = n; } 我测试的所有数字都被认为是回文。因此,出于某种原因,我上面两个字符的任何数字都会被转储到else中。我试过桌面检查,但无法确定原因 正常运行时的输出为0到9,则为零 public class Palindromorizor{ public static void main (String[] args){ String i

当我将此部分切换到isPali=True时,我已经执行了一些测试:

else{ 
    isPali = false;
    p = n;
} 
我测试的所有数字都被认为是回文。因此,出于某种原因,我上面两个字符的任何数字都会被转储到else中。我试过桌面检查,但无法确定原因

正常运行时的输出为0到9,则为零

public class Palindromorizor{
    public static void main (String[] args){
        String inputString, limit; 
        int n, p, numLim, num = 0;
        boolean isPali;
        limit = JOptionPane.showInputDialog("What is your limit?");
        numLim = Integer.parseInt(limit);

        while(num < numLim){
            isPali = isPalindrome(num);

            if(isPali == true){
                System.out.print(num + " ");
                ++num;
            }
            else{
                ++num;
            }
        }
    }

    public static boolean isPalindrome(int num){
        String strNum;
        int n = 0;
        int p;
        boolean isPali = true;
        strNum = "" + num;
        p = strNum.length();

        //strNum.substring(p - 1, p) + " " + p + " " + n + " " + strNum + " " + isPali);

        while(p > n){
            if(strNum.substring(n, n + 1) == strNum.substring(p - 1, p) && (p <= n)){
                isPali = true;
            }
            else if(strNum.substring(n, n + 1) == strNum.substring(p - 1, p) && (p > n)){
                ++n;
                --p;
            }
            else{
                isPali = false;
                p = n;
            }
        }

        return isPali;
    }
}
公共类回文同调器{
公共静态void main(字符串[]args){
字符串输入字符串,限制;
int n,p,numLim,num=0;
布尔isPali;
limit=JOptionPane.showInputDialog(“您的限额是多少?”);
numLim=Integer.parseInt(限制);
while(numn){
if(strNum.子串(n,n+1)=strNum.子串(p-1,p)&(pn)){
++n;
--p;
}
否则{
isPali=假;
p=n;
}
}
返回isPali;
}
}

因为您将字符串与==运算符进行比较。使用相等的方法。

在实际问题中张贴您的问题。可能重复