我全部的文章都是對我總結學習的總結,那裏很差或者冒犯了那裏,我先對您說聲對不起,請告知我進行改正。
今天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