Java 检查回文字符串
回文是一个词,短语,数字或其他单位序列,可以读取相同的方式在任何方向。 为了检查一个单词是否是回文,我得到了这个单词的char数组并比较了这些字符。我试过了,看起来很管用。但是我想知道这是对的还是有什么需要改进的地方。
这是我的代码:
public class Aufg1 { public static void main(String[] args) {
String wort = "reliefpfpfeiller";
char[] warray = wort.toCharArray();
System.out.println(istPalindrom(warray));
}
public static boolean istPalindrom(char[] wort){
boolean palindrom = false;
if(wort.length%2 == 0){
for(int i = 0; i < wort.length/2-1; i++){
if(wort[i] != wort[wort.length-i-1]){
return false;
}else{
palindrom = true;
}
}
}else{
for(int i = 0; i < (wort.length-1)/2-1; i++){
if(wort[i] != wort[wort.length-i-1]){
return false;
}else{
palindrom = true;
}
}
}
return palindrom;
}
}
回答:
为什么不只是:
public static boolean istPalindrom(char[] word){ int i1 = 0;
int i2 = word.length - 1;
while (i2 > i1) {
if (word[i1] != word[i2]) {
return false;
}
++i1;
--i2;
}
return true;
}
例:
输入为“ andna”。
i1将为0,i2将为4。
第一次循环迭代,我们将比较word[0]
和word[4]
。它们相等,因此我们将i1递增(现在为1),然后将i2递减(现在为3)。
因此,我们然后比较n。它们相等,因此我们将i1递增(现在为2),将i2递减(现在为2)。
现在i1和i2相等(它们都为2),因此while循环的条件不再成立,因此该循环终止并返回true。
以上是 Java 检查回文字符串 的全部内容, 来源链接: utcz.com/qa/402430.html