【问题标题】:How to replace a string with a symbol of the same length如何用相同长度的符号替换字符串
【发布时间】:2014-02-23 16:22:56
【问题描述】:

我正在创建一个审查器,但我不确定如何用符号 * 替换单词的长度

这是我目前所拥有的

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;
    }

}

显然这将用 * 替换字符串 cuss

 passage.replaceAll(cuss, "*");

但我希望它用 * 替换字符串 cuss 的每个字母 不过,我不确定该怎么做。我有一种感觉,我最终会因为无法弄清楚这一点而打自己的脸。

所以,如果字符串 cuss 是测试。 test 将替换为 * * * *(忽略间距)

如果字符串 cuss 是 apple 苹果会被 * * * * *(忽略间距)

【问题讨论】:

标签: java string


【解决方案1】:
passage.replaceAll(cuss, "*"); 

绝对什么都没有,因为它返回一个String,你甚至没有使用它。你必须这样做:

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

但考虑到您想用相同长度的符号替换 cuss 词,也许您可​​以尝试以下操作:

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

【讨论】:

    【解决方案2】:

    我希望它用 * 替换字符串 cuss 的每个字母

    替换你能做的每一个字符

    String cussStar = cuss.replaceAll(".", "*");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      相关资源
      最近更新 更多