java - 列出java中匹配单词的所有下一个单词
问题描述
我已经使用下面的函数来打印下一个单词。
但它只打印第一个匹配的单词,如何打印所有单词?
字符串示例 = " 123 :G 大家好 P: 我是 java 新手 :G 帮帮我 :N abc 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 :R 56 0 0 :G 请;字符串 matchWord= ":G";
public String nextWord(String str, String matchWord) {
Pattern p = Pattern.compile(matchWord + "\\W+(\\w+)");
Matcher m = p.matcher(str);
return m.find() ? m.group(1) : null;
}
当前输出:嗨预期输出:嗨,请帮助
解决方案
你很近。您应该将它包装到一个循环中,而不是只使用三元 if 语句检查m.find()
一次。像这样的东西:
Pattern p = Pattern.compile(matchWord + "\\W+(\\w+)");
Matcher m = p.matcher(str);
List<String> words = new ArrayList<>();
while(m.find()){
words.add(m.group(1));
}
return words;
推荐阅读
- reactjs - 如何在反应虚拟化网格中选择一行?
- python - 我在使用 Plotly Scatter 时遇到问题
- javascript - Sequelize - 与子选择连接(1:n - 从第二个表中选择最后一行)
- typeorm - 如果存在则更新实体,如果不存在则创建实体
- android - 如何将字符串数据从活动发送到片段
- java - Spring Data Jpa 并发用户请求性能命中
- r - 更改r中列表的标点符号?
- android - 使用 CameraX 库 android 崩溃:java.lang.ClassNotFoundException
- linux - google-chrome 无法移动到新的命名空间
- sql - 从 Google BigQuery 中的选择中排除数组类型字段