【发布时间】:2012-05-28 23:08:00
【问题描述】:
String original = "This is a sentence.Rajesh want to test the application for the word split.";
List matchList = new ArrayList();
Pattern regex = Pattern.compile(".{1,10}(?:\\s|$)", Pattern.DOTALL);
Matcher regexMatcher = regex.matcher(original);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group());
}
System.out.println("Match List "+matchList);
我需要将文本解析为长度不超过 10 个字符的行数组,并且在行尾不应有断字。
我在我的场景中使用了以下逻辑,但是如果行尾有中断,它会在 10 个字符后解析到最近的空格
例如:实际的句子是“这是一个句子。Rajesh 想要测试应用程序的单词拆分。”但是在逻辑执行之后它得到如下。
匹配列表[这是一个,nce.Rajesh,想要,测试,应用,对于,单词,拆分。]
【问题讨论】:
-
假设你想在 Groovy 中使用这个?除了标签之外,您没有提到 Groovy...
-
你的意思是第10个字符不应该是?如果是空格呢?
-
如果单词本身长度超过 10 个字符会怎样?是不是应该中间分开?例如,
"quickbrownfoxjumpsoverthelazydog"是否应该变为{"quickbrown","foxjumpsov", "erthelazyd", "og"}? -
我不清楚你希望输出是什么 - 你能指定你希望你的例句如何分割吗?
-
@amaidment 我的要求是我需要将 1 行中的字符数限制为小于或等于 100 个字符而不破坏单词。如果单词在 100 字符的末尾是打破我们需要在下一行添加这个词。