java判断回文字符串几种简单的实现

java判断回文字符串几种简单的实现java判断回文字符串几种简单的实现

大家好,又见面了,我是你们的朋友全栈君。

11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进步,关注我,给你分享更多干货知识!

java判断回文字符串几种简单的实现:

1.将字符串倒置后逐一比较,实现如下:

public class HuiWenTest {  
/** 
 * @SERLIN 
 */  
public static void main(String[] args) {  
    String str = "";  
    System.out.println("请输入一个字符串");  
    Scanner input = new Scanner(System.in);  
    str = input.next();  
  
    StringBuffer sb = new StringBuffer(str);  
    sb.reverse();// 将Str中的字符串倒置  
  
    int count = 0;  
    for (int i = 0; i < str.length(); i++) {  
        if (str.charAt(i) == sb.charAt(i)) {  
            count++;  
        }  
    }  
    if (count == str.length()) {  
          
        System.out.println("此字符串是一个回文字符串");  
    } else {  
        System.out.println("此字符串不是一个回文字符串");  
    }  
}  

2.将字符串倒置后创建新字符串直接比较,实现如下:

public class HuiWenTest2 {  
    /** 
     * @SERLIN 
     */  
    public static void main(String[] args) {  
        System.out.println("请输入一个字符串");  
        Scanner input = new Scanner(System.in);  
        String str = input.next();  
        StringBuilder sb=new StringBuilder(str);  
        sb.reverse();//将str倒置的方法  
        String newStr=new String(sb);  
        if(str.equals(newStr)){  
            System.out.println(str+"是回文字符串");  
        }else{  
            System.out.println(str+"不是回文字符串");  
        }  
    }  
}  

3.使用截取字符串的方式比较,实现如下:

public class HuiWenTest3 {  
    /** 
     * @SERLIN 
     */  
    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("不是回文字符串");  
        }  
    }  
}  

4.判断回文数字(判断纯数字),实现如下

public class HuiWenNum {  
    /** 
     * @SERLIN 
     */  
    public static void main(String[] args) {  
        int n;  
        System.out.println("请输入一个整数:");   
        // 如果结果为回文数,跳出循环  
        while (true) {  
            Scanner InpuNum = new Scanner(System.in);  
            n = InpuNum.nextInt();  
            if (isHuiWen(n)) {  
                System.out.println(n + "是回文数!");  
                break;  
            } else {  
                System.out.println(n + "不是回文数!");  
            }  
        }  
    }  
  
  
    // 判断的数字是否是回文数  
    public static boolean isHuiWen(int n) {  
        int m = reverse(n);  
        if (m == n) {  
            return true;  
        } else {  
            return false;  
        }  
    }  
  
  
    // 将输入的数字进行倒置,以便进行判断是否是回文数  
    public static int reverse(int n) {  
        int temp = 0;// 临时变量  
        int j = 0;// 倒置后的数字  
        temp = n;// 将输入的数字赋值给临时变量  
        while (temp != 0) {  
            j = j * 10 + temp % 10;  
            temp /= 10;  
        }  
        return j;  
    }  
}  

·回文数的定义:

对于非负数 其左右两边完全相同 则是回文。 e.g: 121 11 等

对于负数 其绝对值左右两边完全相同 则是回文。 e.g: -121 -11 等

设计一个算法判断给定的数是否为回文数,如果是,输出true 反之 输出false;

c++代码:

#include <iostream>  
#include <math.h>  
  
using namespace std;  
  
bool isPadlindrome(int n)  
{  
    // 如果是int类型的最小值 显然不是回文数  
    if (n == INT_MIN)  
    {  
        return false;  
    }  
  
    // 绝对值  
    n = abs(n);  
  
    int tmp = 1;  
  
    // 将tmp位数变为与n一致  
    while(n / tmp >= 10) // 防止tmp溢出  
    {  
        tmp *= 10;  
    }  
  
    // n = 0 表示所有位比较完  
    while(n != 0)  
    {  
        // 最高位 != 最低位  
        if (n / tmp != n % 10)  
        {  
            return false;  
        }  
  
        // 最高位 = 最低位 去掉最高位 去掉最低位  
        // 继续比较  
        n = (n % tmp) / 10;  
        tmp /= 100;  
    }  
  
    return true;  
}  
  
int main(void)  
{  
    int n;  
    cin>>n;  
  
    if (isPadlindrome(n))  
    {  
        cout<<"true"<<endl;  
    }  
    else  
    {  
        cout<<"false"<<endl;  
    }  
  
    return 0;  
}  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134768.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 学生信息管理系统(纯前端页面)———无后端数据库

    学生信息管理系统(纯前端页面)———无后端数据库无后端数据库版本的—-学生信息管理系统文末下载地址这学期的前端作业很奇怪,不用数据库实现学生信息管理系统,随便写了下。具体功能如下:实现了查看信息(单击查看按钮,查看具体信息,且为不可修改格式) 实现了修改信息功能(单击修改按钮,可以对学生的信息进行修改) 实现了新增功能(可以新增加一个学生的信息,添加到最后边) 实现了删除功能(在复选框中选择几个就删除几个) 实现了全…

    2022年9月20日
  • linux系统sdio接口wifi编程,3个SDIO接口WiFi模块/WiFi+蓝牙组合模块介绍-SKYLAB「建议收藏」

    linux系统sdio接口wifi编程,3个SDIO接口WiFi模块/WiFi+蓝牙组合模块介绍-SKYLAB「建议收藏」原标题:3个SDIO接口WiFi模块/WiFi+蓝牙组合模块介绍-SKYLAB听说你在找SDIO接口WiFi模块/WiFi蓝牙组合模块?SKYLAB有推出3款支持SDIO接口的小尺寸WiFi模块和WiFi+蓝牙组合模块。以下是这三款模块详情。(1)支持SDIO接口WiFi模块WG223WG223是一款SDIO接口(兼容SDIO1.1/2.0/3.0)WiFi模块,专门为实现嵌入式系统…

    2022年10月3日
  • listagg 函数[通俗易懂]

    listagg 函数[通俗易懂]listagg函数–oracle11grelease2转载:http://xpchild.blog.163.com/blog/static/10180985920108485721969/本文描述了在oracle11grelease2版本中新增的listagg函数,listagg是一个实现字符串聚合的oracle内建函数。作为一种普遍的技术,网络上也有多种实现字符串聚合的方…

    2022年9月7日
  • http415错误

    http415错误ajax传json数据到controller接受数据碰到415错误415:UnsupportedMediaType :服务器无法处理请求附带的媒体格式解决步骤:1.ajax设置contentTypecontentType:’application/json;charset=UTF-8′,2.设置datadata:JSON.stringify(requestData),…

    2022年5月23日
  • java 单例模式实现的5种方式[通俗易懂]

    java 单例模式实现的5种方式[通俗易懂]第一种:饿汉式/***CreatedwithIntelliJIDEA.**@author:宸濯*Date:2021/08/188:21*Description:单例模式的设计(饿汉式)*1.构造方法私有化*2.在静态语句块实例化*3.提供调用实例对象的方法*4.空间换时间,不管有没有调用方法,实例都创建了*Version:V1.0*/publicclassSingletonOne{privatestatic

    2022年8月11日
  • 旅游管理系统——你凭什么不被吐槽?

    旅游管理系统——你凭什么不被吐槽?旅游管理系统显然成为了旅行社经营管理的又一个利器。当前,旅游管理系统作为旅游业旅行社发展的重要组成部分,成为旅行社互联网建设的重要切入点。目前旅游管理系统的在旅行社的口碑如何?开发旅游管理系统的目的是为了使旅游业的信息建设更加完善、服务更加便捷、管理更加精细,有效提高旅游业现代化发展质量和水平。管理系统在使用过程中,通过旅行社的业务对接、云计算、大数据等新一代信息技术创新应用已经成为主流。本次将…

    2022年5月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号