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;  
}  

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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