两个Java字符串相同值不同Eclipse ID的哈希映射不正确
以下是来自Knime的代码类名称:两个Java字符串相同值不同Eclipse ID的哈希映射不正确,java,hashmap,knime,Java,Hashmap,Knime,以下是来自Knime的代码类名称: HashMap<String,DataColumnSpec> rcols = new HashMap<String, DataColumnSpec>(); rightSpec.forEach(rs -> { rcols.put(rs.getName(), rs); }); DataColumnSpec[] jcols = leftSpec.stream() .filter(s -> r
HashMap<String,DataColumnSpec> rcols = new HashMap<String, DataColumnSpec>();
rightSpec.forEach(rs -> { rcols.put(rs.getName(), rs); });
DataColumnSpec[] jcols = leftSpec.stream()
.filter(s -> rcols.containsKey(s.getName()))
.toArray(DataColumnSpec[]::new);
结果为空,但不应为空!确实有一个匹配的列
以下是调试器屏幕截图:
注:第一个实例中的p id=14978,第二个id=666
这是怎么回事?我该怎么做才能修复它呢?遗憾地承认,答案是其中一个字符串中有一个非打印字符。数据源是Knime上的FileReader节点,它有一个处理UTF-8-BOM数据文件的错误。它将NUL字符注入到它读取的第一个字符串中,该字符串在调试器中不可见,但会抛出所有比较
完全归功于@Ole V.V.我只是没有想到。吸取教训 遗憾地承认,答案是其中一个字符串中的非打印字符。数据源是Knime上的FileReader节点,它有一个处理UTF-8-BOM数据文件的错误。它将NUL字符注入到它读取的第一个字符串中,该字符串在调试器中不可见,但会抛出所有比较
完全归功于@Ole V.V.我只是没有想到。吸取教训 两个字符串中的一个非打印字符?@OleV.V:太棒了!布尔西!我真希望我想到了那一点。我会发布答案。两个字符串中都有一个非打印字符?@OleV.V:太棒了!布尔西!我真希望我想到了那一点。我会把答案贴出来。