Java String 中是否有格式说明符,例如 python 中的 '%r'?



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

Java 中是否有等效的格式说明符可以这样工作?

我想得到的是sth。

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

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

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

请注意,无论是 Python 的repr(),还是 Java 的formatTo()toString()都没有对生产的内容提供任何一般保证。 例如,Python的repr()文档说:

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

它接着说,类可以覆盖默认的repr()行为。

在Java的情况下,javadoc的通用toString()甚至更少规范。

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

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

所以简短的回答是:不。 没有什么接近你需要的。

最新更新