我正在尝试利用String.format()
方法为 infile 中的每一行添加可变数量的空格,以生成新的 outfile 。 infile 是一个.java文件,除了换行符外都删除了所有空格,每个大括号都有自己的行。
这是我的代码,我测试在每行之前添加3个空格。请注意,Scanner
参数来自main
infile :
void printToOutFile(Scanner s, File o) throws IOException {
FileWriter stream = new FileWriter(o);
BufferedWriter out = new BufferedWriter(stream);
int numOfSpaces = 3;
while(s.hasNext()) {
line = s.nextLine();
String l = String.format("%1$" + numOfSpaces + "s", line);
out.write(l + "\n");
}
out.close()
}
这里的String.format()
似乎只在任何大括号之前添加空格,而不是在带有文本的行中添加空格。我无法弄清楚为什么会这样做。
答案 0 :(得分:1)
您在格式字符串中指定了宽度,但我并不知道您正在做什么。来自Formatter
文档:
可选 width 是一个非负十进制整数,表示要写入输出的最小字符数。
试试这个:
String l = String.format("%1$" + (numOfSpaces + line.length()) + "s", line);
答案 1 :(得分:0)
你试过吗
format("%*s", numSpaces, line);