我想在Java中将字符串拆分为3个字的部分。
例如:
我想和父亲一起在公园散步
我想要一个字符串:"I want to"
,另一个字符串:"walk in the"
等。
我该怎么做?
答案 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”不匹配。
对于非RegEx解决方案,我会使用类似这样的东西
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个,并将连接的字符串添加到您选择的列表/数组中。