将字符串拆分为3个字的Java部分

时间:2018-05-12 20:13:54

标签: java split

我想在Java中将字符串拆分为3个字的部分。

例如:

  

我想和父亲一起在公园散步

我想要一个字符串:"I want to",另一个字符串:"walk in the"等。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

以下是使用RegEx的解决方案

String sentence = "I want to walk in the park with my father";

Pattern pattern = Pattern.compile("\\w+ \\w+ \\w+ ");
Matcher matcher = pattern.matcher(sentence);
while (matcher.find()) {
    System.out.println(matcher.group());
}

请注意,在此表达式中,最后一个单词“father”不匹配。

对于非R​​egEx解决方案,我会使用类似这样的东西

String sentence = "I want to walk in the park with my father";

String[] words = sentence.split(" ");
List<String> threeWords = new ArrayList<>();

int length = words.length;
for (int ind = 2; ind < length; ind += 3) {
    threeWords.add(words[ind - 2] + " " + words[ind - 1] + " " + words[ind]);
}

if (length % 3 == 1) {
    threeWords.add(words[length - 1]);
} else if (length % 3 == 2) {
    threeWords.add(words[length - 2] + " " + words[length - 1]);
}

答案 1 :(得分:1)

为我创建一个临时的ArrayList(又名obj ),并一次删除3个单词,将它们连接成一个String,并将它添加到我的最终ArrayList中工作得很好,尽管这可能不是很好。它具有极高的性能效率,可以完成工作并完成工作。它很容易理解。

words

编辑:既然你写了这个:

  

我知道如何将它分成单个单词,而不是分组。

在评论中,将其拆分为单词组很简单。首先,将句子分成单词,然后将这些单词连接成新的字符串,一次3个,并将连接的字符串添加到您选择的列表/数组中。