首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中拆分段落:想要将段落存储在特定单词地址编号之后

在Java中拆分段落:想要将段落存储在特定单词地址编号之后
EN

Stack Overflow用户
提问于 2011-09-27 05:56:12
回答 4查看 1.7K关注 0票数 0

我需要逻辑,例如我有

代码语言:javascript
复制
String explanation = "The image-search feature will start rolling out in the next few days, said Johanna Wright, a Google search director. \"Every picture has a story, and we want to help you discover that story,\" she said.";

总字数为300字。

现在我想把单词150之后的所有字符串放在一个单独的字符串中。你能给我讲讲逻辑吗

EN

回答 4

Stack Overflow用户

发布于 2011-09-27 18:44:54

有没有试过..。

代码语言:javascript
复制
explanation.substring(beginIndex, endIndex)
票数 1
EN

Stack Overflow用户

发布于 2011-09-27 06:04:48

有三件事会很有帮助。

第一个是String.split(String)方法。它是在Java 6中引入的,它的工作原理是传入一个正则表达式,然后根据该正则表达式将字符串拆分成标记。

第二个是正则表达式"\s*“,它在所有空格上拆分。

第三个是StringBuilder,它允许您从其他字符串构建字符串,而不会造成大量的重建损失。

因此,首先我们需要获取单词。我们可以通过使用空白正则表达式的split方法来做到这一点。

代码语言:javascript
复制
String[] words = String.split("\\s*");

从那里开始,数数前150个单词应该是相当简单的。您可以使用从150开始并向上移动的for循环。

代码语言:javascript
复制
String sentence = "";
for(int i = 150; i < words.length; i++) {
    sentence = sentence + words[i] + " ";
}

但这是非常昂贵的,因为它重新构建了太多的字符串。我们可以通过这样做让它变得更好

代码语言:javascript
复制
StringBuilder sentence = "";
for(int i = 150; i < words.length; i++) {
    sentence.append(words[i]).append(" ");
}

但是所有这些加在一起,哇,你的句子格式就像你想要的那样。(只需注意末尾的额外空间!)

票数 0
EN

Stack Overflow用户

发布于 2011-09-27 06:07:19

一种方法是使用explanation.replaceFirst("(\\S+\\s*){0,150}", "")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7561819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档