Java字符串操作 - 添加空格或子字符串
问题描述:
我正在解构一个Java对象,从获取器中获取所有必需的字符串值,并将所有这些值连接成每个对象一个字符串。我转念一想存储每个字符串是一个Java字符串操作 - 添加空格或子字符串
ArrayList<String>
我串联字符串到每个对象一个字符串,这样我就可以一个PDF文件(PDFBOX)的报告打印出来...我想将每一行的格式设置为与表格中的相同。例如,无论字符串1是3个字符还是103个字符,它总是会填充25个字符空间 - 要么是使用更小的字符串,要么使用空间进行缓冲,以取决于所需的大小。
我的问题是如何有效地做到这一点?对于这个例子可以说我要求每个条目的长度为25个字符。所以对于我在下面追加的每个值,我如何强制所有条目都是25个字符长?
String SPACE=" ";
for(People peeps: list){
builder = new StringBuilder();
name =(peeps.getName());
// if(name.length()>25){name=name.substring(0,25);}
builder.append(name)
.append(SPACE)
.append(peeps.getCode())
.append(SPACE)
.append(peeps.getReference())
.append(SPACE)
.append(peeps.getDate())
.append(SPACE)
.append(peeps.getStatus())
.append(SPACE)
.append(peeps.getValue());
reportList.add(builder.toString());
}
e.g
答
使用Formatter类。
StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb);
sb.append("|");
formatter.format("%-25.25s", "This is some text with more than 25 characters.");
sb.append("|");
formatter.format("%-25.25s", "Some text with less.");
sb.append("|");
formatter.format("%-25.25s", "Some other text.");
sb.append("|");
System.out.println(formatter.toString());
输出:
|This is some text with mo|Some text with less. |Some other text. |
答
阿帕奇百科全书提供了易于使用的API与弦乐的工作:
name = StringUtils.substring(name, 0, 25);
name = StringUtils.leftPad(name, 25, ' ');
完美,正是我一直在寻找... – user1843591