我想将hashmap元素转换为小写。在我的代码中,我将retMap转换为小写,但是当我打印RetMap时,它没有反映出来。请在出错的地方帮助我。
public HashMap<String,String> loadHashmapFromResultset(ResultSet rs, String sKey, String sValue) throws SQLException
{
//HashMap<String,String> myMap
HashMap<String,String> RetMap = new HashMap<String,String>();
while(rs.next()){
//System.out.print(rs.getString(sKey)+rs.getString(sValue)+", " );
RetMap.put(rs.getString(sKey.toLowerCase()), rs.getString(sValue.toLowerCase()));
}
System.out.print(RetMap);
return RetMap;
}
results = stmt.executeQuery("select xyz,abc from table1");
HashMap<String,String> INVS_VALUES = new HashMap<String,String>();
INVS_VANITY_VALUES=util.loadHashmapFromResultset(results, "xyz", "abc");
System.out.println("INVS_VALUES: "+INVS_VALUES);
答案 0 :(得分:1)
这是因为您更改了仅用作列名的sKey
和sValue
来从ResultSet
获取字符串的情况。您需要将地图为key and value
的实际值的大小写转换为小写。
RetMap.put(rs.getString(sKey.toLowerCase()).toLowerCase(), rs.getString(sValue.toLowerCase()).toLowerCase());
如果您错误地更改了sKey
和sValue
的情况,那么您可以直接使用它。
RetMap.put(rs.getString(sKey).toLowerCase(), rs.getString(sValue).toLowerCase());
As mentioned in the comments by sura,您可以在调用null
返回的字符串toLowercase()
之前添加ResultSet
检查,以避免NullPointerException
。
答案 1 :(得分:0)
使用:
RetMap.put(rs.getString(sKey).toLowerCase(), rs.getString(sValue).toLowerCase());
答案 2 :(得分:0)
您将键和您获得的值小写为参数:
RetMap.put(rs.getString(sKey.toLowerCase()), rs.getString(sValue.toLowerCase()));
您应该小写实际结果:
RetMap.put(rs.getString(sKey).toLowerCase(), rs.getString(sValue).toLowerCase());