NoIndentWriter 不尊重模板中的空格

2024-01-08

我正在尝试使用无缩进写入器 http://www.stringtemplate.org/api/index.html?org/stringtemplate/v4/NoIndentWriter.html类来解决我面临的与在多行字符串中插入空格 https://stackoverflow.com/q/27889951/274677.

然而,看来NoIndentWriter不仅仅是不自动缩进。特别是,即使模板中明确存在,它也会修剪所有前导空格(但不删除尾随空格)。

例如。使用以下模板文件:

$ cat src/templates/a.xml.stg 
ladder(value)::=<<
0  
 1  
  2  
   3
    ^value^
>>

...以及以下代码:

public static void main(String args[]) throws Exception {
    STGroup stGroup = new STGroupFile("templates/a.xml.stg", '^', '^');
    ST st = stGroup.getInstanceOf("ladder");
    st.add("value", "4");

    StringWriter sw = new StringWriter();
    NoIndentWriter w = new NoIndentWriter(sw);
    st.write(w);
    String result = sw.toString();
    System.out.printf("result is:\n%s\n", result);
    PrintWriter pw = new PrintWriter("out");
    pw.println(result);
    pw.close();
}

...产生以下内容:

$ cat out 
0  
1  
2  
3
4

通过检查out从文件中可以看出,模板文件中存在的尾随空格被保留,但前导空格被修剪。

有没有什么方法可以指示 StringTemplate 在模板文件中保留空格而不使用自动缩进编写器 http://www.stringtemplate.org/api/org/stringtemplate/v4/AutoIndentWriter.html(因为它正在遭受这个问题 https://stackoverflow.com/q/27889951/274677)?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NoIndentWriter 不尊重模板中的空格 的相关文章