我需要逻辑,例如我有
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之后的所有字符串放在一个单独的字符串中。你能给我讲讲逻辑吗
发布于 2011-09-27 18:44:54
有没有试过..。
explanation.substring(beginIndex, endIndex)发布于 2011-09-27 06:04:48
有三件事会很有帮助。
第一个是String.split(String)方法。它是在Java 6中引入的,它的工作原理是传入一个正则表达式,然后根据该正则表达式将字符串拆分成标记。
第二个是正则表达式"\s*“,它在所有空格上拆分。
第三个是StringBuilder,它允许您从其他字符串构建字符串,而不会造成大量的重建损失。
因此,首先我们需要获取单词。我们可以通过使用空白正则表达式的split方法来做到这一点。
String[] words = String.split("\\s*");从那里开始,数数前150个单词应该是相当简单的。您可以使用从150开始并向上移动的for循环。
String sentence = "";
for(int i = 150; i < words.length; i++) {
sentence = sentence + words[i] + " ";
}但这是非常昂贵的,因为它重新构建了太多的字符串。我们可以通过这样做让它变得更好
StringBuilder sentence = "";
for(int i = 150; i < words.length; i++) {
sentence.append(words[i]).append(" ");
}但是所有这些加在一起,哇,你的句子格式就像你想要的那样。(只需注意末尾的额外空间!)
发布于 2011-09-27 06:07:19
一种方法是使用explanation.replaceFirst("(\\S+\\s*){0,150}", "")。
https://stackoverflow.com/questions/7561819
复制相似问题