是否可以从ImmutableMultimap.keys()中删除方括号

noM*_*MAD 1 java guava

执行以下操作时:

ImmutableMultimap<Something, Something> map;
//Say I insert "Hello", "5" to the map
System.out.println(map.keys().toString());
Run Code Online (Sandbox Code Playgroud)

[Hello]当我这样做时,打印出来

if(map.keys().toString().equals("Hello"))
Run Code Online (Sandbox Code Playgroud)

它总是失败.我不想这样做

if(map.keys().toString.equals("[Hello]")
Run Code Online (Sandbox Code Playgroud)

有没有方法显示没有方括号的结果?

maa*_*nus 18

你永远不应该使用toString()任何严肃的东西!这种方法适用于人们检查正在发生的事情(例如在调试器中),而不是其他任何事情.

此外,那里没有括号.map.keys()是一个集合,它的toString()方法与集合的工作方式相同.您最好通过测试map.keys.size() == 1然后检查唯一元素来替换您的测试.

  • 而且,`Multiset.toString()`的确切格式是[未指定](http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/com/google/common/collect/Multiset. html#toString()),因此它可能会在将来的版本中发生变化,破坏你的代码 - 它应该被破坏.= / (5认同)

ola*_*gjo 5

map.keys().toString().replaceAll("[\\[\\],]","")
Run Code Online (Sandbox Code Playgroud)

返回字符串,删除所有方括号和逗号