我正在使用免费标记和java。我必须将结果输出到txt 文件中。假设我必须打印 3 列
`A B C`
在类似的模式中。所有三个属性均为字符串。
条件是,如果引用 A 的字符串长度超过 3,则应在下一行打印。也就是说,如果长度为 8,则前 3 个字符将在第一行,4 到 6 个字符将在第二行,其余两个字符将在第三行。现在,当我必须打印 B 时,我必须返回到第一行,但 A 的当前位置将是第 3 行。
我该怎么做呢?
Example
Hi, (required cursor position to print for B).
Hel
lo(current cursor position)
我已经看了一下FreeMarker 字符串内置插件 http://freemarker.sourceforge.net/docs/ref_builtins_string.html我不认为有一个函数可以直接解决这个问题,但你可以做如下:
我假设您有 3 个列表,其中包含传递给模板的 Java 属性。在模板中,您创建另外 3 个列表,它们将用作存储剩余字符的缓冲区列表。
具有功能字符串函数 http://freemarker.sourceforge.net/docs/ref_builtins_string.html#ref_builtin_substring substring(0, 3)
您计算可以直接为 A 列输出多少属性字符串,如果还有字符,则将它们添加到第一个缓冲区列表中。
然后对 B 列和 C 列重复相同的过程。之后,A 列再次转动(这次是第二行)。这次,您不再查看 Java 传递的列表,而是查看缓冲区列表:是否还存在先前属性的剩余字符,或者可以使用传递的列表吗?
如果还有剩余字符则应用substring(0, 3)
再次将可能的剩余字符再次推入第一个缓冲区列表的前面。等等等等...
我知道这很乏味,但这是我能想到的唯一解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)