Java判断字符串回文的代码实例

 更新时间:2020年02月21日 14:14:25   作者:爱穿新衣服的姑凉  
在本篇文章里小编给各位整理的是一篇关于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判断字符串是否是回文请关注脚本之家其它相关文章!

相关文章

  • JDK版本管理工具jEnv解决不同jdk版本项目

    JDK版本管理工具jEnv解决不同jdk版本项目

    本文主要介绍了JDK版本管理工具jEnv解决不同jdk版本项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 简单分析Java的求值策略原理

    简单分析Java的求值策略原理

    在本篇文章里小编给大家整理的是一篇关于简单分析Java的求值策略原理内容,有需要的朋友们可以学习下。
    2021-06-06
  • SonarQube安装、配置与使用教程图解

    SonarQube安装、配置与使用教程图解

    这篇文章主要介绍了SonarQube安装、配置与使用教程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java中的ClassLoader类加载器使用详解

    Java中的ClassLoader类加载器使用详解

    这篇文章主要介绍了Java中的ClassLoader类加载器使用详解,ClassLoader用于将CLASS文件动态加载到JVM中去,是所有类加载器的基类,所有继承自抽象的ClassLoader的加载器,都会优先判断是否被父类加载器加载过,防止多次加载,需要的朋友可以参考下
    2023-10-10
  • Springboot中使用缓存的示例代码

    Springboot中使用缓存的示例代码

    这篇文章主要介绍了Springboot中使用缓存的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • mybatis plus开发过程中遇到的问题记录及解决

    mybatis plus开发过程中遇到的问题记录及解决

    这篇文章主要介绍了mybatis plus开发过程中遇到的问题记录及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • SpringBoot 防御 CSRF 攻击的流程及原理解析

    SpringBoot 防御 CSRF 攻击的流程及原理解析

    CSRF是一种非常常见的Web攻击方式,其实是很好防御的,但是由于经常被很多开发者忽略,进而导致很多网站实际上都存在 CSRF 攻击的安全隐患,这篇文章主要介绍了SpringBoot 如何防御 CSRF 攻击,需要的朋友可以参考下
    2023-05-05
  • SpringCloud Gateway详细分析实现负载均衡与熔断和限流

    SpringCloud Gateway详细分析实现负载均衡与熔断和限流

    这篇文章主要介绍了SpringCloud Gateway实现路由转发,负载均衡,熔断和限流,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Java多线程中的CountDownLatch解析

    Java多线程中的CountDownLatch解析

    这篇文章主要介绍了Java多线程中的CountDownLatch解析,CountDownLatch是一个阻塞部分线程直到其他线程执行完成后唤醒的同步计数器,核心是其内部类Sync继承于AQS,同时也是利用的AQS的同步原理,也称之为闭锁,需要的朋友可以参考下
    2023-11-11
  • Spring Boot接口支持高并发具体实现代码

    Spring Boot接口支持高并发具体实现代码

    这篇文章主要给大家介绍了关于Spring Boot接口支持高并发具体实现的相关资料,在SpringBoot项目中通常我们没有处理并发问题,但是使用项目本身还是支持一定的并发量,需要的朋友可以参考下
    2023-08-08

最新评论