首页 > 解决方案 > 从文本中查找字符对

问题描述

我有一个文件,我想找到类似的字符对,"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]);
      }
 }

标签: javaarrays

解决方案


我会这样处理它:

  1. 从您正在使用的字符串中删除所有空格,以便您只处理对。
  2. 使用 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.
    
}

推荐阅读