【问题标题】:Replace digits by character in String用字符串中的字符替换数字
【发布时间】:2015-09-25 09:12:50
【问题描述】:

我想用某个字符替换 ssn。例如:

public char filter = "a";
public String ssn = 123-45-6789
public replace(string ssn){
    //replace ssn = aaa-aa-aaaa because filter = "a"
}

谁能告诉我怎么做,因为它在字符串中有“-”?

【问题讨论】:

    标签: java regex char


    【解决方案1】:

    如果您只想替换数字,请尝试以下代码:

    public String replace(string ssn) {
         return ssn.replaceAll("[0-9]", "a");
    }
    

    正则表达式[0-9] 定义应该替换哪些字符(0 到 9 之间的每个“字符”,意思是:只有数字)。

    【讨论】:

      【解决方案2】:

      要将正则表达式与 replaceAll() 一起使用,您需要将过滤器设为字符串。同样,您需要在替换函数中返回一个字符串。 请尝试以下操作:

      String filter = "a";
      public String replace(String ssn)
      {
          return ssn.replaceAll("[0-9]",filter);
      }
      

      【讨论】:

        【解决方案3】:

        你不能修改字符串,因为它是不可变的类。但是您可以使用替换值创建新字符串。所以

        • 创建StringBuidler
        • 遍历 ssn 的所有字符(toCharArray() 在这里很有用)
          • 如果 char 是数字,则将 filter 附加到构建器(想到 Character.isDigit(char)
          • 如果 char 是 -(或非数字),则将 '-' 附加到构建器
        • 将构建器转换为字符串

        您也可以尝试使用replaceAll 和正则表达式,它只会匹配数字。

        【讨论】:

          猜你喜欢
          • 2013-05-03
          • 2013-07-09
          • 1970-01-01
          • 1970-01-01
          • 2014-03-21
          • 1970-01-01
          • 2012-04-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多