日期:2014-05-20  浏览次数:20908 次

String.equals比较两个相同字符为false的问题
System.err.println("INSERT INTO CommArea VALUES (1, 'country', '中国', 0, '000000');".equals("?INSERT INTO CommArea VALUES (1, 'country', '中国', 0, '000000');"));

如上代码可以放在控制台试验一下是否为false,我也找不到原因,一个是从文本里面读出来的 一个是直接复制文本里面的内容,求高手找找原因。

------解决方案--------------------
后面的字符串,第一个字符(在INSERT之前)是不可显示字符。

你运行这段程序看看就知道了:
Java code

        String a = "INSERT INTO CommArea VALUES (1, 'country', '中国', 0, '000000');";
        String b = "?INSERT INTO CommArea VALUES (1, 'country', '中国', 0, '000000');";
        System.out.println("a: " + a.length() + "\t\tb: " + b.length());
        for (int i = 0; i < a.length(); i++) {
            if (a.charAt(i) != b.charAt(i)) {
                System.out.println(i + "\t" + a.charAt(i) + "[" + (int) a.charAt(i) + "] != " + b.charAt(i) + "["
                        + (int) b.charAt(i) + "]");
            }
        }

------解决方案--------------------
编码问题么?我这里提示了个Some characters cannot be mapped using GBK character encoding..

 试试重新手动输入。。 这个问题奇葩