java - 从文本中查找字符对
问题描述
我有一个文件,我想找到类似的字符对,"hello how are you"
答案是[he,el,ll,lo,oh,ho,ow,wa,ar,re,ey,yo,ou]
,我尝试了以下方法,但它不起作用。我也希望它们是独一无二的,但如果我找到这些对,我可能会发现。
PS: “结果”是我正在执行程序的文件
int[][] pairs = new int[result.length()][];
for (int i = 0; i < result.length(); i++)
{
for (int j = 0; j < result.length(); j++)
{
pairs[i][j] = j + 1;
System.out.println(pairs[i][j]);
}
}
解决方案
我会这样处理它:
- 从您正在使用的字符串中删除所有空格,以便您只处理对。
- 使用 HashSet 来保存所有的对,为什么是 HashSet?由于它是一个丢弃重复项的数据容器,因此我们无需检查内部是否已经有一对。
下面是一个示例:
String formattedString = result.replace(" ", ""); // removing all the spaces from our result (which could be a line of the file)
HashSet<String> pairSet = new HashSet(); // Initializing an empty HashSet
for (int i = 0; i < result.length() - 1; i++)
{
final String tmp = formattedString.substring(i, 2); // Give me a pair of 2 characters starting from i (so in the first index then second and so on)
pairSet.add(tmp); // We add this to our set, if it is already contained, it is discarded.
}
推荐阅读
- angular - 从角度 http POST 中的网络错误中识别 BE 错误的正确方法是什么?
- python - Tkitnter 画布小部件事件
- php - Telegram bot sendMessage parse_mode 生成 HTTP/1.1 400 错误请求
- node.js - 运行没有端口号的 Node JS 服务器
- ios - WKWebView 拦截本地文件请求
- javascript - 在某个索引处对多维数组的元素进行排序
- git - 更新 github web 中的分叉存储库以重置为原始存储库
- c# - 无法让 Intellisense 在 Ubuntu 下使用 VSCode 与 Unity 一起工作
- python - 根据 MAC 地址和用户名生成确定性 UID
- reactjs - 在 useRef 对象更新后反应组件不渲染