java - 获取Java中所有出现的二元组
问题描述
我正在尝试从字符串中获取所有出现的二元组。
所以下面我有一些代码可以完成其中的一些。
String testString = "Lorem ipsum dolor sit amet.";
Pattern pat = Pattern.compile("\\w+ \\w+");
Matcher mat = pat.matcher(testString);
while (mat.find()) {
System.out.println("Match: " + mat.group());
}
我得到的是:
匹配:Lorem ipsum
搭配:dolor sit
而我想要的结果是:
匹配:Lorem ipsum
匹配:ipsum dolor
搭配:dolor sit
比赛:坐在一起
解决方案
仅匹配每个单词,而不是两个单词的每个组合。然后保存最后一个单词,每当找到一个新单词时,就存储一个 doublet。
String testString = "Lorem ipsum dolor sit amet.";
Pattern pattern = Pattern.compile("\\w+");
Matcher matcher = pattern .matcher(testString);
String lastSingleWord = null;
List<String> results = new ArrayList<>();
while (matcher.find()) {
String singleWord = matcher.group(0);
if (lastSingleWord != null) {
results.add(lastSingleWord + " " + singleWord);
}
lastSingleWord = singleWord;
}
之后,如果需要,您可以输出列表,或随意使用它。
results.stream().forEach(System.out::println);
// Lorem ipsum
// ipsum dolor
// dolor sit
// sit amet
推荐阅读
- python - Robotframework:如何在字符串中执行令牌和秘密到不同的变量?
- java - 如何有效且正确地在 mongodb 中存储和检索各种 REST 服务器响应
- excel - 根据每封电子邮件的 Excel 单元格值确定 Outlook 收件人
- c - 将中缀转换为后缀时出现分段错误
- react-native - React Native Design Keyboard On Top of TextBox - 无法使 KeyboardAvoidingView 工作
- c# - 从文本框加载路径到列表视图
- sitemap - 谷歌链接显示站点地图并生成 404 错误我无法解释
- postgresql - 在带有 Sequelize 的 Where 语句中使用包含的模型
- python - Python返回一个var本身
- nginx - 一个变量上的 nginx 多个映射条件