距离编辑数组输出

时间:2017-01-10 21:15:47

标签: processing levenshtein-distance edit-distance

我正在使用用户输入进行编辑距离。我将我的值存储在数组中。然后编辑距离将比较用户输入和我的字符串数组。我正在做一个循环,如果编辑距离大于2,它将显示无效的其他有效。

我唯一遇到的问题是虽然程序运行良好,但输出结果是所有' 28'我在数组中的字符串。我想只显示无效或有效一次。

Test是我的字符串数组,用户是 - 字符串用户 - 用户输入。

void testingLD()
{
  for (int i=0; i<test.length; i++)
  {
      if(getLevenshteinDistance(test[i],user) > 2)
      {
        println ("Invalid re-input");
      }
      else 
      {
        println ("Valid");
      }
  }
}

1 个答案:

答案 0 :(得分:0)

您的循环中有打印线功能,因此每次迭代都会打印一次。

试试这个。

void testingLD()
{
  boolean isValid = true; // assume true, check each and update

  // begin loop
  for (int i=0; i<test.length; i++)
  {
      if(getLevenshteinDistance(test[i],user) > 2)
      {
        isValid = false;
        break; // don't need to test the rest of the loop if we already found a false
      }
  }
  // end loop

  if(isValid){
    println("Valid");
  }else{
    println("Invalid re-input");
  }
}

同样,您可以计算有效int validCount = 0; validCount++的数量,然后显示有效数量,百分比等的统计数据。或者保留无效字符串的数组并将其显示为失败的字符串等等!

总结: 如果要检查整个集合或数组的某些条件并输出一个答案,请确保将输出放在循环之外!