zoukankan      html  css  js  c++  java
  • Java实现回文判断

    1 问题描述
    给定一个字符串,如何判断这个字符串是否是回文串?

    所谓回文串,是指正读和反读都一样的字符串,如madam、我爱我等。

    2 解决方案
    解决上述问题,有两种方法可供参考:

    (1)从字符串两头往中间扫;

    (2)从字符串中间往两头扫。

    具体代码如下:

    package com.liuzhen.string_1;
    
    import java.util.Scanner;
    
    public class StringPalindrome {
        //方法1:两头往中间扫
        public boolean IsPalindrome1(String A){
            char[] arrayA = A.toCharArray();
            int top = 0;
            int end = arrayA.length-1;
            if(A.equals("") || A.equals(null))    //非法输入
                return false;
            while(top < end){
                if(arrayA[top++] != arrayA[end--])
                    return false;
            }
            return true;
        }
        
        //方法2:中间往两头扫
        public boolean IsPalindrome2(String A){
            char[] arrayA = A.toCharArray();
            int lenA = arrayA.length;
            int mid = lenA/2;
            int front;         //前半部分
            int back;          //后半部分
            if(lenA % 2 == 0){   //当字符串长度为偶数时
                front = mid-1;
                back = mid;
            }
            else{
                front = mid -1;
                back = mid + 1;
            }
            if(A.equals("") || A.equals(null))
                return false;
            while(front >= 0 && back < lenA){
                if(arrayA[front--] != arrayA[back++])
                    return false;
            }
            return true;
        }
        
        public static void main(String[] args){
            StringPalindrome test = new StringPalindrome();
            Scanner in = new Scanner(System.in);
            System.out.println("请输入一个字符串:");
            String A = in.nextLine();
            if(test.IsPalindrome1(A))
                System.out.println("使用方法1判断结果为,输入字符串是回文字符串");
            else
                System.out.println("使用方法1判断结果为,输入字符串不是回文字符串");
            if(test.IsPalindrome2(A))
                System.out.println("使用方法2判断结果为,输入字符串是回文字符串");
            else
                System.out.println("使用方法2判断结果为,输入字符串不是回文字符串");
        }
    }
    

    运行结果:

    请输入一个字符串:
    我爱我
    使用方法1判断结果为,输入字符串是回文字符串
    使用方法2判断结果为,输入字符串是回文字符串
    
    
    请输入一个字符串:
    我爱你
    使用方法1判断结果为,输入字符串不是回文字符串
    使用方法2判断结果为,输入字符串不是回文字符串
    
    
    请输入一个字符串:
    abba
    使用方法1判断结果为,输入字符串是回文字符串
    使用方法2判断结果为,输入字符串是回文字符串
    
  • 相关阅读:
    Maven 集成Tomcat插件
    dubbo 序列化 问题 属性值 丢失 ArrayList 解决
    docker 中安装 FastDFS 总结
    docker 从容器中拷文件到宿主机器中
    db2 相关命令
    Webphere WAS 启动
    CKEDITOR 4.6.X 版本 插件 弹出对话框 Dialog中 表格 Table 自定义样式Style 问题
    SpringMVC JSONP JSON支持
    CKEDITOR 3.4.2中 按钮事件中 动态改变图标和title 获取按钮
    git回退到远程某个版本
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13078471.html
Copyright © 2011-2022 走看看