首页 > 解决方案 > Java字符串中是否有格式说明符,例如python中的“%r”?

问题描述

在python中,%r返回String (converts any Python object using repr()).

Java中是否有类似的格式说明符?

我想要得到的是某物。喜欢

String s = "String s = \"%s\";String.format(s, s)";
return String.Format(s, s);

这样,输出和输入是不同的,因为它包含转义字符\。如果我们有%r,我们可以省略该\"部分。

标签: javapythonstringformat

解决方案


与 Python 最接近的 Java%r%s. %s转换将调用参数formatTo()toString()参数,具体取决于其类型。

请注意,Python 或 Java 都没有提供repr()任何关于生成内容的一般保证。例如,Python 的文档说:formatTo()toString()repr()

"对于许多类型,此函数尝试返回一个字符串,该字符串在传递给 eval() 时会产生具有相同值的对象,否则表示是一个包含在尖括号中的字符串,其中包含对象类型的名称连同其他信息,通常包括对象的名称和地址。”

它接着说一个类可能会覆盖默认repr()行为。

在 Java 案例中,通用toString()javadoc 的规范性甚至更低。

“返回对象的字符串表示。通常,该toString方法返回一个字符串,该字符串“以文本方式表示”该对象。结果应该是一个简洁但信息丰富的表示,易于人们阅读。

由于eval()在 Java 中没有 Python 的等价物,因此没有通用的 Java SE 机制来提供可以嵌入到生成的 Java 源代码中的转义表示。

所以简短的回答是:不。没有什么能满足你的需要。


推荐阅读