当某些字符串具有不同的长度时,如何格式化多个字符串以获得相等的间距

时间:2016-03-15 03:09:23

标签: java android printf string-formatting formatter

我尝试过使用String.format("%-10s %s %20s",stringPlaceNumber, userName, scoreNumberAsString); 我得到以下输出 High Scores Page Image

如何使用正确数量的空格或不可见字符填充以使其间隔适当?

其他信息:   - 这是在Android上,所以在终端尝试这个在这里没有用。字体的宽度可变(即空格可以小于字符)

  • 用户的名字来自Android EditText,它被输入到SQLite数据库中,BaseAdapter将前10个分数放入ListView
  • 用户可以在游戏结束时输入最多 20 个字符的分数名称。
  • 这是代码的其余部分

`listView.setAdapter(new BaseAdapter(){                 @覆盖                 public int getCount(){                     return scores.size();                 }

            @Override
            public ScoreManager.Score getItem(int position) {
                return scores.get(position);
            }

            @Override
            public long getItemId(int position) {
                return 0;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                ScoreManager.Score score = getItem(position);

                TextView view = new TextView(ScoresActivity.this);

                view.setText(String.format("%-10s %s %20s", getPlaceNumber(position+1),score.name.trim(), formatScore(score.score).trim()));
                view.setTextSize(5 * getResources().getDisplayMetrics().density);
                return view;
            }
        });

2 个答案:

答案 0 :(得分:2)

您可以使用String的.trim()方法。

答案 1 :(得分:0)

尝试:

String.format("%-10s %s %20s",stringPlaceNumber, userName.trim(), scoreNumberAsString.trim());