2017-01-10 1 views
1

Я делаю расстояние редактирования с пользовательским вводом. Я сохраняю свои значения в массиве. то расстояние редактирования будет сравнивать вход пользователя с моим массивом строк. Я делаю цикл, который, если расстояние редактирования больше 2, будет отображать недопустимое значение else.Выход массива редактирования расстояния

Единственная проблема, с которой я столкнулся, заключается в том, что, хотя программа работает нормально, результат является результатом всех строк «28», которые у меня есть в моем массиве. Я хотел бы показывать только недействительный или действительный один раз.

Тест - это мой массив строк, а пользователь - пользователь String - пользовательский ввод.

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

ответ

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++, а затем отображать статистику о том, сколько было в силе, процент и т.д. Или сохранить массив неверных строк и отображать их как те, которые не и т.д.!

Завершение: Если вы хотите проверить всю коллекцию или массив для некоторого состояния и вывести один ответ, убедитесь, что ваш выход выходит за пределы цикла!

+0

Я пытаюсь использовать логическое, и хотя это имеет смысл, и он должен работать так. Программа дает мне недействительность для всех возможностей, включая те, которые являются действительными. извините, я все еще новичок в обработке. – user3157072

+0

Вы используете формулу левенштейна отсюда? https://forum.processing.org/two/discussion/20018/levenshtein-distance-sketch –

+0

да я использовал этот пример – user3157072

Смежные вопросы