2014-02-23 49 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(".", "*"); 
相关问题