当前位置: 移动技术网 > IT编程>开发语言>Java > 2019.3.26判断是否回文(java实现)

2019.3.26判断是否回文(java实现)

2019年03月27日  | 移动技术网IT编程  | 我要评论
我所有的文章都是对我总结学习的总结,那里不好或者冒犯了那里,我先对您说声对不起,请告知我进行改正。

今天java老师作业题目是判断是一个字符串否是回文;


emmmm,我的思路是将字符串逆序,然后使用方法 system.out.println(s1.equals(s2));作为比较。


后来我使用    char[] ch = str.tochararray();   


将字符串转换为字符数组,在用for循环将其逆序,后发现不知道怎么返回做对比;


后参考网上例子,写出如下代码


public class stringdemo {
    public static void main(string[] args) {
        string str = "abcdcbb";
        system.out.println(ishuiwen(str));
    }
    public static boolean ishuiwen(string str){
    int lenth = str.length();
        for (int i = 0; i < lenth/2; i++) {
            if(str.tochararray()[i]!=str.tochararray()[lenth-i-1]){//判断头尾是否相同
                return false;
            }
        }
        return true;

 


最后总结,总体代码简单,循环中只要使用tochararray方法,使字符串中i的转换为数组值,与相应的位置做对比即可判断是否是回文。
下面粘贴一下别人写得,作为参考:
将字符串倒置后逐一比较,实现如下:


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


 1 public static void main(string[] args) {
 2 
 3                    string str = "";
 4 
 5                    system.out.println("请输入一个字符串");
 6 
 7                    scanner input = new scanner(system.in);
 8 
 9                    str = input.next();
10 
11  
12 
13                    stringbuffer sb = new stringbuffer(str);
14 
15                    sb.reverse();// 将str中的字符串倒置
16 
17  
18 
19                    int count = 0;
20 
21                    for (int i = 0; i < str.length(); i++) {
22 
23                             if (str.charat(i) == sb.charat(i)) {
24 
25                                      count++;
26 
27                             }
28 
29                    }
30 
31                    if (count == str.length()) {
32 
33                            
34 
35                             system.out.println("此字符串是一个回文字符串");
36 
37                    } else {
38 
39                             system.out.println("此字符串不是一个回文字符串");
40 
41                    }
42 
43          }

 


 


 


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


 1 public static void main(string[] args) {
 2 
 3                    system.out.println("请输入一个字符串");
 4 
 5                    scanner input = new scanner(system.in);
 6 
 7                    string str = input.next();
 8 
 9                    stringbuilder sb=new stringbuilder(str);
10 
11                    sb.reverse();//将str倒置的方法
12 
13                    string newstr=new string(sb);
14 
15                    if(str.equals(newstr)){
16 
17                             system.out.println(str+"是回文字符串");
18 
19                    }else{
20 
21                             system.out.println(str+"不是回文字符串");
22 
23                    }
24 
25          }
26 
27  

 


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


 1 public static void main(string[] args) {
 2                    system.out.println("请输入一个字符串");
 3                    scanner input = new scanner(system.in);
 4                    string str = input.next();
 5                    int count = 0;
 6                    for (int i = 0; i < str.length() / 2; i++) {
 7                    if ((str.substring(i, i + 1)).equals(str.substring(str.length() - 1- i, str.length() - i))) {
 8                                      count++;
 9                             }
10                    }
11                    if (count == str.length() / 2) {
12                             system.out.println("是回文字符串");
13                    }else{
14                             system.out.println("不是回文字符串");
15                    }
16          }
17  

 


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


 

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;

         }

}

 

 


注:以上内容引用自https://blog.csdn.net/u013248516/article/details/38044979

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网