如何格式化一段文本,以便在最大行长度后在新行上打印。请协助

时间:2014-12-04 22:39:54

标签: word-wrap

例如,假设您要输出的响应是:“对不起,我没有 有关的信息。你可以再详细一点吗?” 如果最大长度已设置为20,则响应可能会输出如下: 01234567890123456789 对不起,我没有 有关的信息。 你还能做得更多吗? 具体? (请注意,提供的数字行是为了帮助您查看行长度而应该 不属于实际产出的一部分。)

1 个答案:

答案 0 :(得分:0)

int mySplit = myString.lastIndexOf(' ', 20);

这将返回字符20之前的最后一个空格(如果有)的位置。 将该位置之前的字符串作为输出行,并将该字符串的内容替换为该位置之后的所有内容。

myOutput = myString.substring (0, mySplit-1);
myString = myString.substring (mySplit+1);

重复直到myString< = 20,然后将其添加到输出中。

我不是Java专家,在某个库中可能有更全面的方法,但这样可行。

整理并修复以下评论中的代码:

public void wrapString(String myString) 
{ 
    String myOutput = ""; 
    int mySplit = 0;

    while (myString.length() > 20)  // Keep going until we still have to split it
    {
        mySplit = myString.lastIndexOf(' ', 20); 
        myOutput = myString.substring (0, mySplit-1);  // Take this out FIRST
        myString = myString.substring (mySplit+1);     // THEN consider the rest
        System.out.print(myOutput);                    // Show the part we found
    }
    System.out.print(myString);             // Now show the rest
}