Java 回文检查器似乎将单个字符上方的每个数字都转储到我的else语句中
当我将此部分切换到isPali=True时,我已经执行了一些测试: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
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;
}
}
因为您将字符串与==运算符进行比较。使用相等的方法。在实际问题中张贴您的问题。可能重复