映射到Java中的字符串


88

当我System.out.println(map)使用Java进行操作时,我在stdout中得到了不错的输出。如何Map在不干预标准输出的情况下在变量中获得相同的a字符串表示形式?像String mapAsString = Collections.toString(map)什么?

Answers:


141

使用Object#toString()

String string = map.toString();

所有的亦是在此之后是System.out.println(object)头套下。地图的格式在中描述AbstractMap#toString()

返回此映射的字符串表示形式。字符串表示形式由键值映射列表组成,这些键值映射由映射entrySet视图的迭代器返回,并用大括号(“ {}”)括起来。相邻的映射用字符“,”(逗号和空格)分隔。每个键值映射均表示为键,后跟等号(“ =”),后跟关联值。键和值通过转换为字符串String.valueOf(Object)


3
在Map toString()方法上按F3会产生误导!带您直接到Object.toString()-在使用F3之前应该考虑一下
亚当

2
@Adam,这是因为您在接口上调用了toString(),但该接口中的方法当然没有定义。您的IDE不知道实际的运行时实现。你不应该责怪她。
Victor Dombrovsky

@VictorDombrovsky任何体面的IDE(例如IntelliJ,Eclipse等)都应该能够跟踪接口中定义的方法的实际实现。
惠勒

@wheelertoString()没有声明,Map如果有,则声明:Map有21个实现类。当仅在运行时才知道实际使用的实现时,应该优先选择其中的哪一个?
Gerold Broser

但是键值不是双引号,因此如果有人尝试将其用作JSON,则不是有效的JSON
P Satish Patro

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.