2011-02-13 3 views
0

고양이, 개, 라마라는 세 단어를 걸러 내야합니다. 프로그램은 cAt와 같은 경우에이 단어를 걸러 내야합니다.모욕적 필터 - Java

import java.util.Scanner; 

public class Assign5 { 

    public static void main(String[] args) 
    { 
    String cat,dog,llama,x,y,z; 
    System.out.println("Enter a word"); 

    Scanner keyboard = new Scanner (System.in); 

    x=keyboard.next(); 
    y=x.toLowerCase(); 

    if (y.indexOf("cat")!=-1||y.indexOf("dog")!=-1|y.indexOf("llama")!=-1) 
    { 
     System.out.println("Profanity Detected"); 
    } 
    else if(y.indexOf("cat")!=-1||y.indexOf("dog")!=-1|y.indexOf("llama")!=-1) 
    { 
     y.charAt(0); 
     y.charAt(1); 
     y.charAt(2); 
     y.charAt(3); 
     System.out.println("No Profanity Detected"); 
    } 
    } 
} 

는 출력 :

단어를 입력

독단적

욕설 내가 그 세 단어가 포함 된 단어를 걸러하려고

을 감지. 그것은 그것을 읽고 있지 않습니다. charAt를 사용하여 문자 분할을 시도했지만 작동하지 않습니다. if를 계속 읽습니다. 또한 어떻게 대소 문자를 구분합니까? "cAt"를 모독으로 감지하지만 "고양이"도 모독으로 간주합니다. 나는 사용할 수 없다 : 배열, for, while 또는 split. 지금은 if-else, switch 및 charAt로만 작업 할 수 있습니다.

@ The Scrum Meister : 나는 또한 하나를 올렸습니다. 이 문제를 해결하는 데 여전히 문제가있어 재 게시합니다.

+1

String.contains() http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#contains%28java.lang.CharSequence%29 – Nishant

+1

Clbuttic !!! !!! – Daniel

+0

이 프로젝트를 계속하기 전에이 기사를 읽어보십시오. http://www.telegraph.co.uk/news/newstopics/howaboutthat/2667634/The-Clbuttic-Mistake-When-obscenity-filters-go-wrong.html. 사실, 그냥 구글 "clbuttic" – JohnFx

답변

2

당신을 올바른 방향으로 안내하기 위해 String documentation을 알려 드리겠습니다. 즉, equals 함수입니다. StackOverflow에서는 숙제에 대한 정확한 예를 제시하지 않고 올바른 방향으로 학생을 안내합니다. 무언가가 작동하는 방식이나 이와 유사한 것에 대해 구체적인 질문이 있으시면 언제든지 도와 드리겠습니다.

조언이 한 번있는 경우 y=x.toLowerCase();에 전화하고 싶지 않으므로 "고양이"와 "cAt"를 구분할 방법이 없습니다 (두 고양이가 모두 "고양이"이기 때문에).

+0

적어도 내가 잘못하고있는 것을 암시 할 수 있습니까? ? – user605989

+0

@user 빠른 힌트를 위해 업데이트를 확인하십시오. 그 이상으로, indexOf가 -1이 아닌 결과를 리턴하면 필터링하려는 단어 앞뒤의 문자가 문자가 아닌지 확인하기 위해 다른 검사를 수행해야합니다. 그러면 "독단적 인"단어를 걸러 낼 수 있습니다. –

+0

@user 어떻게 시작됩니까? 우리가 도울 수있는 다른 것이 있습니까? –

0

문자열을 테스트하는 부울 메서드 인 .contains() 메서드 을 사용할 수 있으며 contains ("String param here") 매개 변수에 지정된 문자열이 있으면 true를 반환합니다.