Java 当某些字符串具有不同的长度时,如何格式化多个字符串以获得相等的间距
我尝试过使用Java 当某些字符串具有不同的长度时,如何格式化多个字符串以获得相等的间距,java,android,printf,string-formatting,formatter,Java,Android,Printf,String Formatting,Formatter,我尝试过使用String.format(“%-10s%s%20s”、stringPlaceNumber、用户名、ScoreNumberString) 我得到以下输出 . 如何使用正确数量的空格或不可见字符填充,使其看起来间隔适当 其他信息: -这是在安卓系统上的,所以在终端上尝试这一点并没有多大用处。字体具有可变宽度(即空格可以小于字符) 用户名来自一个Android EditText,它被输入到SQLite数据库中,一个BaseAdapter将前10个分数放入ListView 用户可以在游
String.format(“%-10s%s%20s”、stringPlaceNumber、用户名、ScoreNumberString)代码>
我得到以下输出
.
如何使用正确数量的空格或不可见字符填充,使其看起来间隔适当
其他信息:
-这是在安卓系统上的,所以在终端上尝试这一点并没有多大用处。字体具有可变宽度(即空格可以小于字符)
- 用户名来自一个Android EditText,它被输入到SQLite数据库中,一个
BaseAdapter
将前10个分数放入ListView
- 用户可以在游戏结束时输入最多20个字符的分数名称
- 这是代码的其余部分
`setAdapter(新的BaseAdapter(){
@凌驾
public int getCount(){
返回分数。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;
}
});
尝试:
尝试:
您可以使用字符串的.trim()
方法。您可以使用字符串的.trim()
方法。>使用空格或不可见字符使其看起来间隔适当。1.您的意思是在Listview中,那么为什么不使用对齐列表视图项呢?2.关于格式字符串,我测试了它并正确输出了字符串。从图像上看,它看起来只需要一个两个单元格的表格;为什么只有1个?这看起来像是XY问题,String.format()
在这方面对您没有帮助,尤其是因为您使用的是可变宽度字体,我最终有点作弊。现在我将使用固定宽度字体。>空格或不可见字符使其看起来间隔适当。1.您的意思是在Listview中,为什么不使用对齐列表视图项呢?2.关于格式字符串,我测试了正确输出字符串。从您的图像看,似乎您需要一个两单元格的表格;为什么只有1个?这看起来像是一个XY问题,string.format()
在这方面对您没有帮助,特别是因为您使用的是可变宽度字体,我最终有点作弊。现在,我将使用固定宽度字体。嗯,值得检查trim()那么,值得检查trim()函数。
String.format("%-10s %s %20s",stringPlaceNumber, userName.trim(), scoreNumberAsString.trim());