您好,登錄后才能下訂單哦!
首先,回文是指類似于“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判斷字符串是否是回文請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。