我正在尝试调试我在脚本上遇到的问题,我是 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");
}
}
对于字符串名称 =“昵称”,向我显示:
18:56:15 [INFOS] 'nickname' contains 94 chars
18:56:15 [INFOS] 'nickname' contains 8 chars
我试图理解这一点。
问题是entry.getKey()
返回与我的字符串名称相同的内容,但并不完全相同。在第一次测试中,我们看到两个 var 不同,所以打印了,但是两个 var 的值相同,长度不同。在 else-if 中,我尝试删除空格但未打印,那么这 94 个字符在哪里?
是代码,关注的方法是
private String parse(String query)
private int[] getIndexes(String name)
第 161 行和第 89 行我的这个 for 循环只是为了调试
int[] indexes = (int[]) indexMap.get(name);
返回始终为空
查询字符串是:
SELECT COUNT(`account_id`) AS `total` FROM `game_accounts` WHERE `nickname`=:nickname