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 }
运行结果:
分析:该程序是非常简单,但面试中又喜欢问的
愿你悄悄的努力,遇见更好的自己~