我有一个用System.out.format()
方法格式化的字符串,我做了类似的事情:
System.out.format("I = %3d var = %9.6f", i, myVar);
但是当我尝试将这个格式化的字符串写入文件时,我只能得到类似"java.io.PrintStream@84fc8d"
的内容。
在查看文档后,了解到这个方法有点像System.out.print()
,只返回要显示的PrintStream(例如在控制台中),所以我尝试用.toString
或{{1}转换它但是我得到了相同的结果。
所以我想知道是否有一种方法可以像String.valueOf()
方法一样格式化字符串,但是以一种可以在文件中写入的方式?
这是我使用的代码(只显示有用的部分)
String.out.format()
答案 0 :(得分:3)
var items = '';
返回System.out.format
PrintStream
,Object
方法调用正在向您提供您正在尝试编写的toString
。
您应该使用String.format
代替。
<强> 即 强>
java.io.PrintStream@84fc8d
答案 1 :(得分:2)
使用
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
答案 2 :(得分:2)
String.format正是您要找的它会返回String
而不是PrintStream
,如System.out.format
。
您的代码应为:
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
请查看 Java.lang.String.format() Method 以获取更多信息。
答案 3 :(得分:1)
您也可以使用java 7中的java.util.Formatter。参考文件: