繁体   English   中英

Java中的字符串比较

[英]String comparison in Java

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

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

这怎么了

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

您可以trim字符串以删除所有这些空格,然后进行比较:-

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

或者,可能还有其他一些non-printable字符,这些字符不会被trimming删除。 您可以尝试使用single quotes将字符串打印出来,并检查是否有以下内容:-

System.out.println("'" + name + "'");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM