我正在尝试通过将数据分成两列来创建字符串。
String s = "";
List selectedItems = listView.getSelectionModel().getSelectedItems();
s = s + (String) selectedItems.get(0);
String t;
for (int i = 1 ; i<selectedItems.size();i++){
t = (String) selectedItems.get(i);
if (i%2!=0){
s = s + "\t\t\t";
}
else{
s = s + "\n";
}
s = s + (String) t;
}
我的想法是为任务使用这样的代码。但是根据字符串的长度,我无法将第二列显示为一行。
我认为有一种方法可以计算需要覆盖一个字符串的选项卡数量,更改我添加的额外选项卡的数量,而不是在每行中添加3个选项卡。但我不知道该如何计算。
如何解决此问题?
当前结果:
one two
three four
five six
预期结果:
one two
three four
five six
这是用总长度为30的“”填充字符串后的结果。
我仅使用jfx来获取数据。 itextPdf我们用来将字符串写入pdf
您可以尝试类似的操作,用空格替换X
。对于更动态的方法,请找到最长的字符串长度,并为此最长的字符串长度附加更多X并形成maxSpaces
public static void main( String[] args )
{
String s = "";
String maxSpaces = "XXXXXXXXXX";
List<String> selectedItems = new ArrayList<>( Arrays.asList( "One", "Two", "Three", "Four", "Five", "Six" ) );
String t;
for( int i = 0; i < selectedItems.size(); i++ )
{
t = selectedItems.get( i );
if( i > 0 && i % 2 != 0 )
{
s = s + maxSpaces.substring( selectedItems.get( i-1 ).length() );
}
else
{
s = s + "\n";
}
s = s + t;
}
System.out.println( s );
}