Android : 替换字符串中的字符
Android : replacing characters in a string
在我手机上的电话簿中,我有各种各样的联系人,例如:
+(353) 085 123 45 67
00661234567
0871234567
(045)123456
我将它们全部转换成 E.164 格式,我已经基本完成了,但我需要解决的问题是:
如果第一个字符是“+”或数字,我如何去除字符串中除数字以外的所有字符(包括空格)?
string phoneNumberofContact;
所以例如上面的情况看起来像:
+3530851234567
00661234567
0871234567
045123456
更新
要仅在第一个位置处理 +
,您可以这样做:
boolean starsWithPlus = input.charAt(0) == '+';
String sanitized = input.replaceAll("[^0-9]", "");
if (startsWithPlus) {
sanitized = "+" + sanitized;
}
所以基本上我是在检查它是否以加号开头,然后去掉除数字以外的所有内容,然后重新添加加号(如果有的话)。
原创
假设您只想保留 +
或数字,一个简单的正则表达式就可以了,String
提供了 replaceAll()
方法使它更容易。
String sanitized = input.replaceAll("[^+0-9]", "");
这个方法可以解决问题
public String cleanPhoneDigits(String phonenum) {
StringBuilder builder = new StringBuilder();
if (phonenum.charAt(0).equals('+') {
builder.append('+');
}
for (int i = 1; i < phonenum.length(); i++) {
char c = phonenum.charAt(i);
if (Character.isDigit(c)) {
builder.append(c);
}
}
return builder.toString();
}
在我手机上的电话簿中,我有各种各样的联系人,例如:
+(353) 085 123 45 67
00661234567
0871234567
(045)123456
我将它们全部转换成 E.164 格式,我已经基本完成了,但我需要解决的问题是:
如果第一个字符是“+”或数字,我如何去除字符串中除数字以外的所有字符(包括空格)?
string phoneNumberofContact;
所以例如上面的情况看起来像:
+3530851234567
00661234567
0871234567
045123456
更新
要仅在第一个位置处理 +
,您可以这样做:
boolean starsWithPlus = input.charAt(0) == '+';
String sanitized = input.replaceAll("[^0-9]", "");
if (startsWithPlus) {
sanitized = "+" + sanitized;
}
所以基本上我是在检查它是否以加号开头,然后去掉除数字以外的所有内容,然后重新添加加号(如果有的话)。
原创
假设您只想保留 +
或数字,一个简单的正则表达式就可以了,String
提供了 replaceAll()
方法使它更容易。
String sanitized = input.replaceAll("[^+0-9]", "");
这个方法可以解决问题
public String cleanPhoneDigits(String phonenum) {
StringBuilder builder = new StringBuilder();
if (phonenum.charAt(0).equals('+') {
builder.append('+');
}
for (int i = 1; i < phonenum.length(); i++) {
char c = phonenum.charAt(i);
if (Character.isDigit(c)) {
builder.append(c);
}
}
return builder.toString();
}