戴牙套的猪
2021-09-18 10:51
采纳率: 100%
浏览 64
已结题

用JAVA判断以字符数组表示的字符串是否为回文

判断以字符数组表示的字符串是否为回文(左右对称的文字,如level、deed等)

  • 收藏

6条回答 默认 最新

  • 已采纳

    这样

    import java.util.Scanner;
    public class HuiWenTest3 {
    
        public static void main(String[] args) {
            System.out.println("请输入一个字符串");
            Scanner input = new Scanner(System.in);
            String str = input.next();
            int count = 0;
            for (int i = 0; i < str.length() / 2; i++) {
            if ((str.substring(i, i + 1)).equals(str.substring(str.length() - 1- i, str.length() - i))) {
                    count++;
                }
            }
            if (count == str.length() / 2) {
                System.out.println("是回文字符串");
            }else{
                System.out.println("不是回文字符串");
            }
        }
    }
    
    

    img

    已采纳该答案
    打赏 评论
  • 字符串的长度有没有限制呢?还是随便的长度都要判断。

    打赏 评论
  • 简单点就首尾判断,或者使用栈来做判断

    打赏 评论
  • 7166丶小贤 2021-09-18 10:57
            String str = "asdfg";
            for (int i = 0 ; i < (str.length() / 2) ; i++ ){
                if (str.charAt(i) != str.charAt(str.length() - 1 - i)){
                    System.out.println("not back Str");
                    System.exit(0);
                }
            }
            System.out.println("back Str");
    
    打赏 评论
  • 於黾 2021-09-18 10:58

    写个循环首尾判断也行
    或者先用字符串截取,变成等长的两段(如果是奇数就丢弃正中间的字符),取反,然后判断字符串是否相等

    打赏 评论
  • yu_duan_hun 2021-09-24 16:56
    private boolean isBack(char[] cs){
            if(Objects.isNull(cs) || cs.length == 0)
                return true;
            for(int i = 0, j= cs.length-1; i < j; i++,j--){
                if(cs[i]!=cs[j])
                    return false;
            }
            return true;
        }
    
    打赏 评论

相关推荐 更多相似问题