2013-10-11 92 views
1

問:在StringTemplate v4中,爲了在屬性的左側或右側添加空格填充(以獲得固定寬度),正確的方法是什麼?StringTemplate中的填充/對齊問題


我開始使用StringTemplate的生成Java代碼的一些腳本文本。 我的輸出文本中存在一些情況,我希望使用空格鍵屬性,以便它們垂直排列。這樣做時,我想控制填充是在左邊還是右邊。

我注意到NumberRenderer使用Formatter.format()並允許使用「printf-style」格式的字符串。

我想用Strings做同樣的事情......例如, 「%-30s」

但是,我很疑惑,看到StringRenderer不使用相同的Formatter.format()代碼。

我也沒有在StringTemplate4 JavaDoc中看到任何其他類型的與String相關的AttributeRenderer。

這讓我想知道是否還有另外一種機制可以用來完成這項工作。

問:在StringTemplate v4中,爲了在屬性的左邊或右邊添加空格填充(以獲得固定寬度),有什麼正確的方法?

感謝, 邁克爾

回答

1

StringTemplate的4提供了StringRenderer類,您可以與您的組註冊。

group.registerRenderer(String.class, new StringRenderer()); 

該渲染器支持多種預定義的格式字符串像upperlower,但你也可以通過它的任何其他格式字符串像%-30s它會傳遞給調用String.format()

+0

對於.NET,請使用string.Format寬度說明符,例如'<名稱; format =「{0,-20}」>'請參閱http://stackoverflow.com/questions/644017/net-format-a-string-with-fixed-spaces – Ryan