String.format()语句用于将每行间隔为空格

时间:2015-11-27 18:27:44

标签: java regex

我正在尝试利用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()似乎只在任何大括号之前添加空格,而不是在带有文本的行中添加空格。我无法弄清楚为什么会这样做。

2 个答案:

答案 0 :(得分:1)

您在格式字符串中指定了宽度,但我并不知道您正在做什么。来自Formatter文档:

  

可选 width 是一个非负十进制整数,表示要写入输出的最小字符数。

试试这个:

String l = String.format("%1$" + (numOfSpaces + line.length()) + "s", line);

答案 1 :(得分:0)

你试过吗

format("%*s", numSpaces, line);