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