スクリプトで発生した問題をデバッグしようとしています。Java を初めて使用しています。これは最も簡単なことだと思いますが、理解する必要があります。これ :
for( Map.Entry<String,int[]> entry : this.indexMap.entrySet())
{
if( !entry.getKey().equals("nickname"))
{
System.out.print("'"+ entry.getKey() +"' contains "+ entry.getKey().length() +" chars");
System.out.print("'"+ name +"' contains "+ name.length() +" chars");
}
else if( entry.getKey().trim().equals("nickname") )
{
System.out.print("Yes are sames");
}
}
String name = "nickname" の場合、次のように表示されます。
18:56:15 [INFOS] 'nickname' contains 94 chars
18:56:15 [INFOS] 'nickname' contains 8 chars
私はこれを理解しようとしています。
問題はentry.getKey()
、文字列名と同じものを返すことですが、実際には同じではありません。最初のテストでは、2 つの変数が異なることがわかったので、出力は行われますが、2 つの変数は同じ値を持ち、同じ長さではありません。else-if で、スペースを削除しようとしましたが、印刷されなかったので、これらの 94 文字はどこにあるのでしょうか?
コードは、関連するメソッドは
private String parse(String query)
private int[] getIndexes(String name)
161行目と89行目私が持っているこのforループは、デバッグするためだけのものです
int[] indexes = (int[]) indexMap.get(name);
常に null を返します
クエリ文字列は次のとおりです。
SELECT COUNT(`account_id`) AS `total` FROM `game_accounts` WHERE `nickname`=:nickname