2014-02-23 91 views
-2

我正在創建一個檢查器,但我不知道如何用符號替換單詞的長度*如何用相同長度的符號替換字符串

這就是我迄今

package com.rs.game.player.content; 

public class CensorHandler { 

    private String cuss = "test"; 

    public boolean checkFilter(String passage) { 
     if(passage.toLowerCase().contains(cuss)) 
      return true; 
     return false; 
    } 

    public String replaceWord(String passage) { 
     if(checkFilter(passage)) { 
      passage.replaceAll(cuss, "*"); 

     } 
     return passage; 
    } 

} 

顯然,這將與替換字符串壞話只是*

passage.replaceAll(cuss, "*"); 

,但我希望它與替換字符串CUSS的每一個字母* 我不知道究竟如何做這個儘管..我有一種感覺,我最終會因爲無法弄清楚這一點而面臨自殺。

因此,如果字符串cuss是測試。 測試將被替換* * * *(忽略間距)

如果字符串壞話是蘋果 蘋果將通過* * * * *(忽略間距)

+3

定義*「信」 *。順便說一句'replaceAll'使用正則表達式。 – m0skit0

+0

你的意思是*「文字替換」*? – herohuyongtao

+1

或者老式的方式= https://ideone.com/eO4Gks – Shahar

回答

2
passage.replaceAll(cuss, "*"); 

絕對不會沒有,因爲它會返回String,您甚至沒有使用它。你要做的:

passage = passage.replaceAll(cuss, "*"); 

但考慮到要與符號的長度相同,以取代粗話,或許你可以嘗試這樣的:

char[] symbols = new char[cuss.length()]; 
Arrays.fill(symbols, '*'); 
passage = passage.replaceAll(cuss, new String(symbols)); 
1

我希望它被替換替換字符串CUSS的每一個字母與*

要替換的每一個字符,你可以做

String cussStar = cuss.replaceAll(".", "*"); 
相關問題