我正在尝试调试脚本中的问题,我刚接触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()返回与我的字符串名称相同的东西,但实际上并不相同。在第一个测试中,我们看到两个变量不同,因此可以进行打印,但是两个变量具有相同的值,但长度不同。在else-if中,我尝试删除空格但未打印,所以这94个字符在哪里?

https://code.google.com/p/imdbparsers/source/browse/trunk/imdb+parsers/src/imdb/parsers/xmltosql/NamedParameterStatement.java?r=6

是代码,有关方法是

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

最佳答案

和...之间的不同

entry.getKey().equals("nickname")




entry.getKey().trim().equals("nickname")


trim()

第一个考虑空格,第二个不考虑空格。

这是因为它们是地图上的一个循环:查找“坏”键...

10-05 18:33