我写了一个判断字符串对称的程序,代码如下:
1、public static void main(String[] args) {
2、 Scanner sc = new Scanner(System.in);
3、 System.out.println("请输入一个字符串:");
4、 char c[] = sc.nextLine().toCharArray();
5、// System.out.println(c);
6、 StringBuffer sb = new StringBuffer();
7、// System.out.println(sb.append(c).reverse());
8、 if (c.equals (sb.append(c).reverse())) {
9、 System.out.println("您输入的字符串是对称的。");
10、 } else {
11、 System.out.println("您输入的字符串是不对称的。");
12、 }
13、 }
程序的问题就是不管输入什么都判断是不对称。我在代码第5行和第7行打印出来输入结果和转化结果,结果显示都一样,可是还是判断不对称,我想是不是SringBuffer接收的结果出了问题还是char[]数组的问题,但是不明白为什么,还请大家帮忙分析一下原因。
我自己把类型都转化成String类型就没有问题了,代码如下:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
char c[] = sc.nextLine().toCharArray();
// System.out.println(c);
StringBuffer sb = new StringBuffer();
// System.out.println(sb.append(c).reverse());
String str2 = sb.append(c).reverse().toString();
if (new String(c).toString().equals (str2)) {
System.out.println("您输入的字符串是对称的。");
} else {
System.out.println("您输入的字符串是不对称的。");
}
}
这是为什么?这也是病急乱投医把问题解决了,但是不明白~~ |
|