首先,回文是指类似于“12345”,“abcdcba”的形式,即正念和反念都是一样的字符串
判断字符串是否是回文,这边介绍3种办法
- 将字符串翻转,判断翻转后的字符串和原字符串是否相等
1 public static void main(String[] args) {
2 String s="abcdcba";
3 // 用StringBuilder的reverse方法将字符串反转
4 StringBuilder sb=new StringBuilder(s);
5 String afterReverse=sb.reverse().toString();
6 //判断反转后的字符串与原字符串是否相等,可用compareTo,equals,
7 int isequal=afterReverse.compareTo(s); //若相等则输出0
8 if (isequal==0){
9 System.out.println("是回文");
10 }else
11 System.out.println("不是回文");
12 }
注意:compareTo,equals判断字符串均考虑大小写,即大小写视为不想等,若需要不考虑大小写,则可以用equalsIgnoreCase
- for循环依次判断对应字符是否相等
1 public static void main(String[] args) {
2 String s="12344321";
3 int l=s.length();
4 System.out.println(l/2);
5 int result=1;
6 //从中间开始往两边比较
7 for (int i=0;i<l/2;i++){
8 if (s.charAt(i)==s.charAt(l-i-1)){
9 result=0;
10 }else{
11 result=1;
12 break; //比较有一个不想等时需要跳出循环,否则只要最后一个比较成立,就会返回result=0
13 }
14 }
15 if (result==0){
16 System.out.println("是回文");
17 }else {
18 System.out.println("不是回文");
19 }
20 }
- 其他待补充,例如将字符串从中间拆分,再比较,