如何计算需要覆盖一个字符串的制表符数量

问题描述 投票:2回答:1

我正在尝试通过将数据分成两列来创建字符串。

        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的“”填充字符串后的结果。

enter image description here

我仅使用jfx来获取数据。 itextPdf我们用来将字符串写入pdf

java string itext
1个回答
0
投票

您可以尝试类似的操作,用空格替换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 );
}
© www.soinside.com 2019 - 2024. All rights reserved.