2017-01-10 5 views
1

사용자 입력으로 거리 편집 중입니다. 내 값을 배열에 저장하고있다. 편집 거리는 사용자 입력을 문자열 배열과 비교합니다. 편집 거리가 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"); 
     } 
    } 
} 

답변

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

여기에서 levenshtein 거리 수식을 사용하고 있습니까? https://forum.processing.org/two/discussion/20018/levenshtein-distance-sketch –

+0

예 내가 그 예제를 사용했습니다 – user3157072