首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何整齐地对齐字符串变量的输出?

如何整齐地对齐字符串变量的输出?
EN

Stack Overflow用户
提问于 2016-02-26 12:37:40
回答 1查看 59关注 0票数 0

如何在第一列字符串大小完全随机的情况下组织输出,并使其不扭曲列之间的距离?

我对java和一般的软件开发都是相当陌生的。

来源:

代码语言:javascript
复制
//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() );

                    }

以下是示例输出,以提供一些想法。

我至少希望第二列对齐。

输出:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2016-02-26 12:46:07

使用printf()String.format(),或者底层Formatter

代码语言:javascript
复制
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());

卸下要右对齐的-标志。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35643597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档