2011-10-29 41 views
5

我目前處於入門級Java類中,並且正在處理經典的短語猜測分配。對象是一個用戶輸入一個祕密短語,另一個用戶每次猜測一個字母。在猜測之間,該短語必須顯示爲除了被正確猜測的字母之外的所有問號。我們的類只是真的涵蓋了一些非常基本的方法,if-else語句和循環到這一點,但我試圖研究一些字符串方法,可能會更容易一些。如何替換用戶輸入字符串中除一個以外的所有字符

我知道的replace()replaceAll()和方法,但不知道是否有它允許你替換所有,但在一個字符串您所選擇的一個字符的方法。

在此先感謝

回答

13

最簡單的方法可能是使用String.replaceAll()

String out = str.replaceAll("[^a]", "?"); 

這將使所有字母a完好無損,將問號取代所有其他字符。

這可以很容易地擴展到多個字符,像這樣:

String out = str.replaceAll("[^aeo]", "?"); 

這會使得所有字母aeo將取代一切。

+0

真棒,非常感謝,這是非常有意義的。現在,我可以在排除字符的正則表達式中引用另一個字符串(比如說,一個字符串,用於存儲用戶對字符串可能包含的字符的猜測)?或者像這樣做需要更多的傳遞方法? – awfulwaffle

+0

@ user1019310:您可以即時構建正則表達式:'「[^」+ chars +「]」',其中'chars'是包含要排除的字符的字符串。 – NPE

+0

^^^完美,這絕對是我需要的。非常感謝大家的幫助。如果我遇到更多的牆壁,我會張貼。 – awfulwaffle

相關問題