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

我全部的文章都是对我总结学习的总结,那里很差或者冒犯了那里,我先对您说声对不起,请告知我进行改正。

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

 
 

emmmm,个人思路是将字符串逆序,而后使用方法 System.out.println(s1.equals(s2));做为比较。数组

 
 

后来我使用    char[] ch = str.toCharArray();   学习

 
 

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

 
 

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

 
 
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的转换为数组值,与相应的位置作对比便可判断是不是回文。
下面粘贴一下别人写得,做为参考:
将字符串倒置后逐一比较,实现以下:

.net

 
 

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

 
 
 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.将字符串倒置后建立新字符串直接比较,实现以下:blog

 
 
 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.判断回文数字(判断纯数字),实现以下

input

 
 

 

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

相关文章
相关标签/搜索