回文的定义
“回文数”就是正读倒读都一样的整数。如奇数个数字:98789,这个数字正读是98789 倒读也是98789。偶数个数字3223也是回文数。字母 abcba 也是回文。
判断一个字符串是否是回文字符串(Java实现)
1.最最弱智的做法
找出区间数字的所有回文数,此例我们判断了五位数字,找出了五位数中所有的的回文数,大一开始接触C语言就是这么干的。
public class Main{
public static void main(String [] args){
int count2 = 0;
for (int j = 10000; j <= 99999; j++) {
int ge = j % 10;
int shi = j / 10 % 10;
int bai = j / 100 % 10;
int qian = j / 1000 % 10;
int wan = j / 10000 % 10;
if (ge == wan && shi == qian) {
System.out.println("是回文 :" + j);
count2++;
}
}
System.out.println("回文总数:" + count2);
}
}
2.使用字符串的拆分
利用字符串的拆分我们可以实现只判断字符串的一半,就可以得出字符串是否是回文
public class Main{
public static void main(String [] args){
System.out.print("判断回文,输入一个字符串:");
Scanner sc1 = new Scanner(System.in);
String str = sc1.nextLine();
int countHuiWen = 0;
for (int k = 0; k < str.length() / 2; k++) {
if (str.substring(k, k + 1).equals(str.substring(str.length() - k - 1, str.length() - k) )) {
countHuiWen++;
}
}
if (countHuiWen == str.length() / 2) {
System.out.println("是回文");
} else {
System.out.println("不是回文");
}
}
}
3.利用字符串函数反转判断
其实我感觉用这个函数实现回文字符串的判断有点违规,因为调用了字符串的自带函数,自己没有实现什么算法,我也就是闹着玩。
public class Test3 {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = input.nextLine();
StringBuffer sb = new StringBuffer(str);
sb.reverse();
int count = 0;
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) == sb.charAt(i)){
count++;
}
}
if(count == str.length()){
System.out.println("此字符串是一个回文字符串");
} else {
System.out.println("此字符串 不 是一个回文字符串");
}
}
}