用字符串中的字符替换数字
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之间的每个"character",意思是:只有数字)。
您不能修改字符串,因为它是不可变的 class。但是您可以使用替换值创建新字符串。所以
- 创建
StringBuidler
- 遍历 ssn 的所有字符(
toCharArray()
在这里很有用)
- 如果 char 是数字附加
filter
到构建器(想到 Character.isDigit(char)
)
- 如果 char 是
-
(或非数字)将 '-'
附加到构建器
- 将生成器转换为字符串
您也可以尝试使用 replaceAll
和仅匹配数字的正则表达式。
要将正则表达式与 replaceAll() 结合使用,您需要将过滤器设为字符串。同样,您需要在替换函数中 return 一个字符串。
请尝试以下操作:
String filter = "a";
public String replace(String ssn)
{
return ssn.replaceAll("[0-9]",filter);
}
我想用某个字符替换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之间的每个"character",意思是:只有数字)。
您不能修改字符串,因为它是不可变的 class。但是您可以使用替换值创建新字符串。所以
- 创建
StringBuidler
- 遍历 ssn 的所有字符(
toCharArray()
在这里很有用)- 如果 char 是数字附加
filter
到构建器(想到Character.isDigit(char)
) - 如果 char 是
-
(或非数字)将'-'
附加到构建器
- 如果 char 是数字附加
- 将生成器转换为字符串
您也可以尝试使用 replaceAll
和仅匹配数字的正则表达式。
要将正则表达式与 replaceAll() 结合使用,您需要将过滤器设为字符串。同样,您需要在替换函数中 return 一个字符串。 请尝试以下操作:
String filter = "a";
public String replace(String ssn)
{
return ssn.replaceAll("[0-9]",filter);
}