编写java程序查找回文字符串

在键盘上输入任意40个字符,查找其中符合回文条件的字符串,并将回文字符串输出。

代码如下,通俗易懂,有帮助的话采纳一下哦!

public class Demo {
     public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList<String> arr = new ArrayList<String>();
        Scanner sc = new Scanner(System.in);
                String str = sc.next();
        int len = str.length();
        for(int i=0;i<len;i++) {
            for(int j=i+1;j<=len;j++) {
                String now = str.substring(i,j);
                if(isHw(now)) {
                    arr.add(now);
                }
            }
        }
        for(String s:arr) {
            System.out.println(s);
        }
    }
    public static boolean isHw(String s) {
        for(int i=0;i<s.length()/2;i++) {
            if(s.charAt(i)!=s.charAt(s.length()-1-i)) {
                return false;
            }
        }
        return true;
    }
}

是这个字符串中所有的回文子串吗?

public class HelloWorld {
    public static void main(String []args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        countSubstrings(s);
    }

    public static void countSubstrings(String s) {
        for(int i = 0; i < s.length(); i++){
            count += countPalindrome(s,i,i);
            if(i < s.length()-1){
            countPalindrome(s,i,i+1);
            }
        }
    }
 
    public static  void countPalindrome(String s,int left, int right){
        while(left >= 0 && right <= s.length()-1){
            if(s.charAt(left) == s.charAt(right)){
                for(int i=left;i<=right;i++)
                    System.out.print(s.charAt(i));
                System.out.println();                    
                left --;
                right ++;
            } else {
                break;
            }
        }
    }
    
 
}

至少3个字才算回文