1

Javaを使用して2つの文字列を比較したいと思います。最初に、cp1251エンコーディングでGDALを使用してファイル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 に答える