2011-02-13 75 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」是褻瀆,但也認爲「貓」也是褻瀆。我不能使用:array,for,while或split。現在,我只能用if-else,switch和charAt來分割。

@ Scrum的梅斯特:我貼一個爲好。這是一個轉發,因爲我仍然無法處理這件事。

+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。即等功能。在StackOverflow上,我們儘量不給出準確的家庭作業例子,但引導學生朝正確的方向發展。如果您對某些工作或類似工作有任何具體問題,我們很樂意提供幫助。

一條建議,你不想叫y=x.toLowerCase();,因爲一旦你這樣做了,你沒有辦法區分「貓」和「cAt」(因爲它們現在都是「貓」)。

+0

你能至少在我在做什麼錯誤提示? – user605989

+0

@user檢查我的更新以獲得快速提示。除此之外,如果indexOf返回的結果不等於-1,則需要執行另一次檢查以確保您要過濾的單詞前後的字符不是字母字符。這將有助於濾除「教條式」這樣的詞 –

+0

@user它是怎麼回事?還有什麼我們可以幫忙的嗎? –

0

您可以使用: .contains()方法 這是測試字符串的布爾方法,如果contains(「String param here」)參數中包含指定的字符串,則返回true。