2019.3.26判断是否回文(java实现)

我所有的文章都是对我总结学习的总结,那里不好或者冒犯了那里,我先对您说声对不起,请告知我进行改正。

今天java老师作业题目是判断是一个字符串否是回文;


emmmm,我的思路是将字符串逆序,然后使用方法 System.out.println(s1.equals(s2));作为比较。


后来我使用    char[] ch = str.toCharArray();   


将字符串转换为字符数组,在用for循环将其逆序,后发现不知道怎么返回做对比;


后参考网上例子,写出如下代码


public class Stringdemo {
    public static void main(String[] args) {
        String str = "abcdcbb";
        System.out.println(isHuiWen(str));
    }
    public static boolean isHuiWen(String str){
    int lenth = str.length();
        for (int i = 0; i < lenth/2; i++) {
            if(str.toCharArray()[i]!=str.toCharArray()[lenth-i-1]){//判断头尾是否相同
                return false;
            }
        }
        return true;

 


最后总结,总体代码简单,循环中只要使用tocharArray方法,使字符串中i的转换为数组值,与相应的位置做对比即可判断是否是回文。
下面粘贴一下别人写得,作为参考:
将字符串倒置后逐一比较,实现如下:


将字符串倒置后逐一比较,实现如下:


 1 public static void main(String[] args) {
 2 
 3                    String str = "";
 4 
 5                    System.out.println("请输入一个字符串");
 6 
 7                    Scanner input = new Scanner(System.in);
 8 
 9                    str = input.next();
10 
11  
12 
13                    StringBuffer sb = new StringBuffer(str);
14 
15                    sb.reverse();// 将Str中的字符串倒置
16 
17  
18 
19                    int count = 0;
20 
21                    for (int i = 0; i < str.length(); i++) {
22 
23                             if (str.charAt(i) == sb.charAt(i)) {
24 
25                                      count++;
26 
27                             }
28 
29                    }
30 
31                    if (count == str.length()) {
32 
33                            
34 
35                             System.out.println("此字符串是一个回文字符串");
36 
37                    } else {
38 
39                             System.out.println("此字符串不是一个回文字符串");
40 
41                    }
42 
43          }

 


 


 


2.将字符串倒置后创建新字符串直接比较,实现如下:


 1 public static void main(String[] args) {
 2 
 3                    System.out.println("请输入一个字符串");
 4 
 5                    Scanner input = new Scanner(System.in);
 6 
 7                    String str = input.next();
 8 
 9                    StringBuilder sb=new StringBuilder(str);
10 
11                    sb.reverse();//将str倒置的方法
12 
13                    String newStr=new String(sb);
14 
15                    if(str.equals(newStr)){
16 
17                             System.out.println(str+"是回文字符串");
18 
19                    }else{
20 
21                             System.out.println(str+"不是回文字符串");
22 
23                    }
24 
25          }
26 
27  

 


3.使用截取字符串的方式比较,实现如下:


 1 public static void main(String[] args) {
 2                    System.out.println("请输入一个字符串");
 3                    Scanner input = new Scanner(System.in);
 4                    String str = input.next();
 5                    int count = 0;
 6                    for (int i = 0; i < str.length() / 2; i++) {
 7                    if ((str.substring(i, i + 1)).equals(str.substring(str.length() - 1- i, str.length() - i))) {
 8                                      count++;
 9                             }
10                    }
11                    if (count == str.length() / 2) {
12                             System.out.println("是回文字符串");
13                    }else{
14                             System.out.println("不是回文字符串");
15                    }
16          }
17  

 


4.判断回文数字(判断纯数字),实现如下


 

public static void main(String[] args) {

                   int n;

                   System.out.println("请输入一个整数:");

                   // 如果结果为回文数,跳出循环

                   while (true) {

                            Scanner InpuNum = new Scanner(System.in);

                            n = InpuNum.nextInt();

                            if (isHuiWen(n)) {

                                     System.out.println(n + "是回文数!");

                                     break;

                            } else {

                                     System.out.println(n + "不是回文数!");

                            }

                   }

         }

 

 

         // 判断的数字是否是回文数

         public static boolean isHuiWen(int n) {

                   int m = reverse(n);

                   if (m == n) {

                            return true;

                   } else {

                            return false;

                   }

         }

 

 

         // 将输入的数字进行倒置,以便进行判断是否是回文数

         public static int reverse(int n) {

                   int temp = 0;// 临时变量

                   int j = 0;// 倒置后的数字

                   temp = n;// 将输入的数字赋值给临时变量

                   while (temp != 0) {

                            j = j * 10 + temp % 10;

                            temp /= 10;

                   }

                   return j;

         }

}

 

 


注:以上内容引用自https://blog.csdn.net/u013248516/article/details/38044979

 
posted @ 2019-03-26 17:17  高先生677  阅读(556)  评论(0编辑  收藏  举报