编程判断一个字符串是否是回文,当字符串是回文时,输出字符串:yes!,否则输出字符串:no!。
所谓回文即正向与反向的拼写都一样,如adgda。 长度在100以内,且全为小写字母
样例输入
adgda
样例输出
yes!
这里介绍了两种方法:
具体代码如下:
import java.util.Scanner;
public class 回文串 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String str = sc.next();
//方法一:
char ch[]=str.toCharArray(); //将字符串转化为字符数组
int sum = 0; //用来计数
for (int i = 0; i < ch.length/2; i++) {
if (ch[i]==ch[ch.length-i-1]) { //判断第一位和最后一位是否相等
sum++; //相等久自加
continue; //然后继续下一次循环,无需执行下面的语句
}else { //只要对应位上字符不相等就直接输出no!
System.out.println("no!");
return;
}
}
if (sum==ch.length/2) { //判断是否有ch.length/2对字符相等。不管是字符长度是奇数还是偶数,对应的字符都只要ch.length/2对
System.out.println("yes!");
}
//方法二:
//字符串取反
String str1 = new StringBuilder(str).reverse().toString();
//判断原字符串是否与取反之后的字符串相同
if (str1.equals(str)) {
System.out.println("yes!");
}else{
System.out.println("no!");
}
}
}
程序运行结果如下:
aba
yes!