如何在第一列字符串大小完全随机的情况下组织输出,并使其不扭曲列之间的距离?
我对java和一般的软件开发都是相当陌生的。
来源:
//just printing out the data with the string I built "String p"
//don't mind dividing them into three strings
while (true) {
tok = lex.nextToken();
String p = TokenType.tokens.get(tok.getKind()) +
" left: " + tok.getLeftPosition() +
" right: " + tok.getRightPosition() + " ";
if ( (tok.getKind() == Tokens.Identifier) ||
(tok.getKind() == Tokens.INTeger) ||
(tok.getKind() == Tokens.FLoat) )
p += tok.toString();
System.out.println(p + " line:"+lex.source.getLineno() );
}以下是示例输出,以提供一些想法。
我至少希望第二列对齐。
输出:
READLINE: program if == float f
program left: 0 right: 6 line:1
if left: 8 right: 9 line:1
== left: 11 right: 12 line:1
float left: 14 right: 18 line:1
<id> left: 20 right: 20 f line:1发布于 2016-02-26 12:46:07
使用printf()或String.format(),或者底层Formatter
System.out.printf("%-10s left: %-2d right: %-2d %-3s line: %d%n",
TokenType.tokens.get(tok.getKind()),
tok.getLeftPosition(),
tok.getRightPosition(),
(tok.getKind() == Tokens.Identifier ||
tok.getKind() == Tokens.INTeger ||
tok.getKind() == Tokens.FLoat ? tok.toString() : ""),
lex.source.getLineno());卸下要右对齐的-标志。
https://stackoverflow.com/questions/35643597
复制相似问题