检查回文字符串A 回文是一个词、短语、数字或其他单元序列,可以在任何方向上以相同的方式读取。为了检查一个单词是否是回文,我得到单词的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;
}}
3 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
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;}
例子:
word[0]
word[4]
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
您可以通过将字符串与其本身相反的情况进行比较来检查字符串是否为回文:
public static boolean isPalindrome(String str) { return str.equals(new StringBuilder(str).reverse().toString());}
或者对于早于1.5的Java版本,
public static boolean isPalindrome(String str) { return str.equals(new StringBuffer().append(str).reverse().toString());}
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
boolean isPalindrome(String str) { int n = str.length(); for( int i = 0; i < n/2; i++ ) if (str.charAt(i) != str.charAt(n-i-1)) return false; return true; }
添加回答
举报
0/150
提交
取消