繁体   English   中英

用字符串中的字符替换数字

[英]Replace digits by character in String

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

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

任何人都可以给我一个想法,因为它在字符串中有“-”?

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

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

正则表达式[0-9]定义了应替换的字符(0到9之间的每个“字符”,即:仅数字)。

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

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

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

  • 创建StringBuidler
  • 遍历ssn的所有字符( toCharArray()在此处可能很有用)
    • 如果char是数字,则将filter器追加到构建器(我想到了Character.isDigit(char)
    • 如果char是- (或非数字),则将'-'附加到生成器
  • 将生成器转换为String

您也可以尝试使用只能匹配数字的replaceAll和regex。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM