2016-02-09 58 views
0

好吧,我正在編寫這個程序,它將丟棄任何不是字母的字符。而現在我無法讓程序識別哪個是哪個。以下是我所做的一些代碼。檢查Java中的字符屬性

System.out.println("Press enter every time, you type a new word, and press the period button to end it."); 
Scanner question = new Scanner(System.in); 
System.out.println("Press enter to continue, or tupe something random in"); 
String userInput = question.next(); 
while(!userInput.equals(".")){ 
    String userInput2 = question.next(); 
    System.out.println(userInput2); 

    if(userInput2.equals("Stop")){ 
     break; 
    } 
} 

回答

1

您可以使用正則表達式來刪除不屬於任何大寫或小寫字母的所有字符:

String userInput2 = question.next(); 
userInput2 = userInput2.replaceAll("[^a-zA-Z]", ""); 
System.out.println(userInput2); 
+1

如果輸入可能包含US-ASCII之外的值,那麼unicode類'\ p {IsAlphabetic}'可能是正則表達式匹配的更好選擇。請參見[java.util.regex.Pattern](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html)。 –

+0

這種可能性並沒有發生在我身上,因爲我認爲這是一個英語程序。感謝評論,我剛剛在SO上學到了一些新東西。 –