欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

判断字符串是否为回文串

程序员文章站 2024-03-17 21:25:58
...

判断字符串是否为回文串

public class Solution {

 //(1)别人方法
  public static boolean isPalindrome(String s) {
        if(s.isEmpty()) return true;
        String str = s.replaceAll("\\W", ""); // 使用正则去除非字符数字的字符
        str = str.toLowerCase();
        for(int i = 0; i < str.length(); i++) {
            if(str.charAt(i) != str.charAt(str.length() - i -1)) {
                return false;
            }
        }
        return true;
    }
  //(2)自我实现
  public boolean isPalindrome(String s) {
     if(s.isEmpty())  return true;
     s= s.replaceAll("\\W", "");
   /*  for(int i=0;i!=s.length();i++){
         if((s.charAt(i)>='A'&&s.charAt(i)<='Z')||(s.charAt(i)>='a'&&s.charAt(i)<='z')){

             str+=s.charAt(i);
         }
     }*/

      return isHuiwen(s);   
    }

    //判断一个字符串是否为回文
    public boolean isHuiwen(String s){
         String str=s.toLowerCase();
         int i=0;
         int j=s.length()-1;
         while(str.charAt(i)==str.charAt(j)&&i!=j)
         {
               i++;
               j--;
         }
         return i==j?true:false;

    }
    public static void main(String[]args){
       //System.out.println("Hello World!");
       Solution s=new Solution();
       String str="A man, a plan, a canal: Panama";
       String str2="race a car";
       String str3=""; //字符串可以为数字,字母
       System.out.println(s.isPalindrome(str));
       System.out.println(s.isPalindrome(str2));
       System.out.println(s.isPalindrome(str3));
       System.out.println(str3.length());
    }
}