距离编辑阵列输出

Distance edit array output

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

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

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

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

您的循环中有打印行函数,因此每次迭代打印一次。

试试这个。

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++ 的数量,然后显示有关有效数量、百分比等的统计信息。或者保留无效字符串的数组并将其显示为失败的字符串等!

总结: 当您想检查整个集合或数组的某些条件并输出一个答案时,请确保您的输出在循环之外!