先上代码
package cn.ztl.five;
import java.util.Scanner;
public class Palindrome {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a string:");
String s = input.nextLine();
int _low = 0;
int _high = s.length() - 1;
boolean isPalindrome = true;
while(_low < _high) {
if(s.charAt(_low) != s.charAt(_high)) {
isPalindrome = false;
break;
}
_low++;
_high--;
}
if(isPalindrome)
System.out.println(s + " is a palindrome");
else
System.out.println(s + " is not a palindrome");
}
}
分析代码
这是个判断回文 那么我们需要记录两个下标,所以 我们定义了_low 来记录字符串首的下表,用_high来记录字符串尾的下标,那么我们只需要循环比较它们是不是相同即可,如果相同 继续循环,不然的话,我们跳出 并打印返回false,但我们还需要一个终止循环条件,_low < _high 可以想象,它们每次循环它们的差值减少2,所以不管字符串是单数还是双数,都是满足的。