1. 程式人生 > 程式設計 >Java判斷字串迴文的程式碼例項

Java判斷字串迴文的程式碼例項

首先,迴文是指類似於“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判斷字串是否是迴文請關注我們其它相關文章!