gpt4 book ai didi

JAVA - 在 30 个字符后的下一个空格处插入一个新行

转载 作者:搜寻专家 更新时间:2023-11-01 03:58:22 24 4
gpt4 key购买 nike

我有一大块文本(一个字符串中有 200 多个字符),需要在 30 个字符后的下一个空格处插入新行,以保留单词。这是我现在拥有的(不工作):

String rawInfo = front.getItemInfo(name);
String info = "";
int begin = 0;
for(int l=30;(l+30)<rawInfo.length();l+=30) {
while(rawInfo.charAt(l)!=' ')
l++;
info += rawInfo.substring(begin, l) + "\n";
begin = l+1;
if((l+30)>=(rawInfo.length()))
info += rawInfo.substring(begin, rawInfo.length());
}

感谢您的帮助

最佳答案

根据 kdgregory 的建议,使用 StringBuilder可能是处理字符串操作的更简单方法。

因为我不太确定插入换行符之前的字符数是 30 个字符之前还是之后的单词,所以我选择了 30 个字符之后的单词,因为实现起来可能更容易。

方法是找到 "" 的实例,它出现在当前正在查看的字符之后至少 30 个字符,使用 StringBuilder.indexOf .当出现空格时,StringBuilder.insert 插入一个 \n .

(我们假设这里的换行符是\n——当前环境中使用的实际行分隔符可以通过System.getProperty("line.separator")获取;).

例子如下:

String s = "A very long string containing " +
"many many words and characters. " +
"Newlines will be entered at spaces.";

StringBuilder sb = new StringBuilder(s);

int i = 0;
while ((i = sb.indexOf(" ", i + 30)) != -1) {
sb.replace(i, i + 1, "\n");
}

System.out.println(sb.toString());

结果:

A very long string containing manymany words and characters. Newlineswill.

我应该补充一点,除了我在代码中显示的示例 String 之外,上面的代码还没有经过测试。如果它在某些情况下不起作用也就不足为奇了。

编辑

示例代码中的循环已替换为 while 循环,而不是 for 循环,这在本例中不太合适。

另外,StringBuilder.insert方法被 StringBuilder.replace 取代方法,正如 Kevin Stich 在评论中提到的那样,使用 replace 方法而不是 insert 来获得所需的行为。

关于JAVA - 在 30 个字符后的下一个空格处插入一个新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1033563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com