1

我想使用 Java 比较两个字符串。我使用 GDAL 以 cp1251 编码name从文件中获取的第一个刺痛。.mif其次kadname,我从 jsp 获得。为了比较我这样做:

if (attrValue instanceof String)
{
    String string3 = 
        new String((attrValue.toString()).getBytes("ISO-8859-1"), "cp1251");
    dbFeature.setAttribute(name, string3);
    System.out.println("Name=" + name);
    System.out.println("kadname=" + kadname);
    if (name.equalsIgnoreCase(kadname))
    {
        kadnum = string3;
        System.out.println("string3" + string3);
    }
}

在控制台中我得到了这个:

Name = kadnumm
kadname = kadnumm

这有什么问题?

4

1 回答 1

5

我可以看到它们不相等的唯一原因是前导或尾随空格。

您可以trim将字符串删除任何这些空格,然后比较它们:-

if (name.trim().equalsIgnoreCase(kadname.trim()))

或者,可能还有一些其他non-printable字符不会被trimming. 您可以尝试在 中打印您的字符串single quotes,并检查是否有:-

System.out.println("'" + name + "'");
于 2012-10-23T04:57:08.287 回答