2019.3.26判斷是否迴文(java實現)

我全部的文章都是對我總結學習的總結,那裏很差或者冒犯了那裏,我先對您說聲對不起,請告知我進行改正。

今天java老師做業題目是判斷是一個字符串否是迴文;java

 
 

emmmm,個人思路是將字符串逆序,而後使用方法 System.out.println(s1.equals(s2));做爲比較。數組

 
 

後來我使用    char[] ch = str.toCharArray();   學習

 
 

將字符串轉換爲字符數組,在用for循環將其逆序,後發現不知道怎麼返回作對比;ui

 
 

後參考網上例子,寫出以下代碼spa

 
 
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的轉換爲數組值,與相應的位置作對比便可判斷是不是迴文。
下面粘貼一下別人寫得,做爲參考:
將字符串倒置後逐一比較,實現以下:

.net

 
 

將字符串倒置後逐一比較,實現以下:code

 
 
 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.將字符串倒置後建立新字符串直接比較,實現以下:blog

 
 
 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.判斷迴文數字(判斷純數字),實現以下

input

 
 

 

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

相關文章
相關標籤/搜索