Java判斷字串迴文的程式碼例項
阿新 • • 發佈:2020-02-23
首先,迴文是指類似於“12345”,“abcdcba”的形式,即正念和反念都是一樣的字串
判斷字串是否是迴文,這邊介紹2種辦法
1、將字串翻轉,判斷翻轉後的字串和原字串是否相等
public static void main(String[] args) { String s="abcdcba"; // 用StringBuilder的reverse方法將字串反轉 StringBuilder sb=new StringBuilder(s); String afterReverse=sb.reverse().toString(); //判斷反轉後的字串與原字串是否相等,可用compareTo,equals, int isequal=afterReverse.compareTo(s); //若相等則輸出0 if (isequal==0){ System.out.println("是迴文"); }else System.out.println("不是迴文"); }
注意:compareTo,equals判斷字串均考慮大小寫,即大小寫視為不想等,若需要不考慮大小寫,則可以用equalsIgnoreCase
2、for迴圈依次判斷對應字元是否相等
public static void main(String[] args) { String s="12344321"; int l=s.length(); System.out.println(l/2); int result=1; //從中間開始往兩邊比較 for (int i=0;i<l/2;i++){ if (s.charAt(i)==s.charAt(l-i-1)){ result=0; }else{ result=1; break; //比較有一個不想等時需要跳出迴圈,否則只要最後一個比較成立,就會返回result=0 } } if (result==0){ System.out.println("是迴文"); }else { System.out.println("不是迴文"); } }
方法知識點補充:
1,定義兩個字串元素指標(注意java沒有指標的概念),int right=T.length()-1 ;int left=0;
2,即left從左邊開始,right從右邊開始,依次比較所指的字元是否相等,若相等,則將left++,right--;否則,直接返回不是迴文
while(left<right){ if(T.charAt(left)!=T.charAt(right)) return false; left++; right--; } return true;
程式碼:
/* * 3: * 迴文判斷 * 問題描述:迴文,英文palindrome,指一個順著讀和反過來讀都一樣的字串,比如madam、我愛我, * 方法一: * 分析:使用兩個"指標"分別從字串頭和尾掃描,若每一個"指標"所指值都相等,這為迴文 */ public boolean isPalindrome(String s){ if(s==null) return false; int left=0; int right=s.length()-1; while(left<right){ if(s.charAt(left)!=s.charAt(right)) return false; left++; right--; } return true; }
以上就是Java判斷字串迴文的程式碼例項的詳細內容,更多關於Java判斷字串是否是迴文請關注我們其它相關文章!