【发布时间】: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"
}
谁能告诉我怎么做,因为它在字符串中有“-”?
【问题讨论】:
我想用某个字符替换 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 filter = "a";
public String replace(String ssn)
{
return ssn.replaceAll("[0-9]",filter);
}
【讨论】:
你不能修改字符串,因为它是不可变的类。但是您可以使用替换值创建新字符串。所以
StringBuidler
toCharArray() 在这里很有用)
filter 附加到构建器(想到 Character.isDigit(char))-(或非数字),则将 '-' 附加到构建器您也可以尝试使用replaceAll 和正则表达式,它只会匹配数字。
【讨论】: