1 public class StringUtils {
 2 
 3     /**
 4      * 把字符串转置
 5      * 
 6      * @param array
 7      *            char数组
 8      * @return 转置后的数组
 9      */
10     public char[] change(String str) {
11         char[] array = str.toCharArray();
12         int size = array.length - 1;
13         int i = 0;
14 
15         while (i <= size) {
16             char temp = array[size];
17             array[size] = array[i];
18             array[i] = temp;
19             size--;
20             i++;
21         }
22 
23         return array;
24     }
25 
26     /**
27      * 判断字符串是否为回文(思路:先把char数组倒置再一一比对)
28      * 
29      * @param str
30      *            字符串
31      * @return 布尔值
32      */
33     public boolean stringUtils(String str) {
34         char[] array = str.toCharArray();
35         char[] arr = change(str);
36         for (int i = 0; i < str.length(); i++) {
37             if (array[i] != arr[i]) {
38                 return false;
39             }
40         }
41         return true;
42     }
43 
44     /**
45      * 判断字符串是否为回文(思路:char数组前后的值相比较)
46      * 
47      * @param str
48      *            字符串
49      * @return 布尔值
50      */
51     public boolean stringUtils1(String str) {
52         char[] array = str.toCharArray();
53         int size = array.length - 1;
54         int i = 0;
55 
56         while (i <= size) {
57             if (array[i] != array[size]) {
58                 return false;
59             }
60             i++;
61             size--;
62         }
63         return true;
64     }
65 
66     public static void main(String[] args) {
67         String str = "abcbaf";
68         StringUtils su = new StringUtils();
69         System.out.println("法一判断是否为回文字符串:" + su.stringUtils(str));
70         System.out.println("法二判断是否为回文字符串:" + su.stringUtils1(str));
71     }
72 
73 }

运行结果:

  

分析:该程序是非常简单,但面试中又喜欢问的

 

posted on 2017-05-05 22:05  呵呵静  阅读(685)  评论(1编辑  收藏  举报