【发布时间】:2018-12-23 00:27:57
【问题描述】:
我在 java 中的代码和我有一个很长的文本(最多 500 个字符),我想对此文本进行一种分段,并且在每个段中我只需要 6 个字符 例如: 这是一个示例文本:
String fullText = "Syria officially known as the Syrian Arab Republic, is a country in Western Asia...";
我想要这个结果:
segment1:叙利亚
segment2:官方
Segment3: 盟友 k
第n段:……
我尝试过使用 for 循环,但我没有达到我的目标.. 而且我有一个错误
java.lang.StringIndexOutOfBoundsException: length=67; regionStart=65; regionLength=5
这是我的代码:
String msg = fullText;
for(int i=-1 ; i <= fullText.length()+1; i++){
int len = msg.length();
text = new StringBuilder().append(msgInfo).append(msg.substring(i, i + 6)).toString();
msg = new StringBuilder().append(msg.substring(i +5, len)).toString();
LogHelper.d(TAG, "teeeeeeeeeeeeext:"+i +" .."+ text);
}
我怎样才能正确地进行这种分割? 谢谢!
【问题讨论】:
-
在提取最后一段时,确保只提取可用长度
-
我对 StringBuilder 的东西感到困惑,似乎是多余的,并且可能会破坏,因为您正在获取 msg 的子字符串,然后稍后更改 msg。你只是想要一个段数组还是什么?
-
@obermillerk 是的,只需进行细分并在每个细分的开头添加一些价值
-
@emaillenin 是的,我的原始代码中有 if 条件 // if(fulltext.lenght >0)...
-
所以你的最终目标是让原始字符串每隔 x 个字符插入一些文本?
标签: java