我想在句子中找出3个字母的单词,而没有任何内置方法,例如charAt()toCharArrays()length()等
以下代码使用正则表达式查找与模式匹配的所有子字符串。我使用了f.find(i)
并将循环中的i
设置为在每个找到的子字符串之后都包含重叠的空白。
List<String> findAll3LetterWords(String sentence){
List<String> allMatches = new ArrayList<>();
Matcher m = Pattern.compile("\\s[^\\s]{3}\\s")
.matcher(" "+sentence+" ");
int i = 0;
while(m.find(i)) {
allMatches.add(m.group().trim());
i = m.start() + 1;
}
return allMatches;
}