hyd*_*471 1 java string replaceall
我有一个名为TelephoneName的databasefield.在这个领域,我得到了不同格式的电话号码.
我现在需要的是将它们分成国家代码和用户号码.
例如,我看到了电话号码+49(0)711/61947-xx.
我想删除所有斜杠,括号,减号,空格.结果可能是+49(国家代码)和071161947**(subsribernumber).
我怎么能用replaceAll方法做到这一点?
replaceAll("//()-","") 那是对的吗?
事情是我有很多未格式化的电话号码,如:+49 04261 85120 +32027400050使用相同的算法应用每个电话号码是不同的
该replaceAll方法采用正则表达式作为参数.要删除除数字之外的所有内容+,您可以这样做
str = str.replaceAll("[^0-9+]", "")
Run Code Online (Sandbox Code Playgroud)
这是一个更完整的示例,它还计算出国家/地区代码(基于(符号的索引):
String str = "+49 (0)711 / 61947-12";
int lpar = str.indexOf('(');
String countryCode = str.substring(0, lpar).trim();
String subscriber = str.substring(lpar).trim();
subscriber = subscriber.replaceAll("[^0-9]", "");
System.out.println(countryCode); // prints +49
System.out.println(subscriber); // prints 07116194712
Run Code Online (Sandbox Code Playgroud)
replaceAll("//()-","")那是对的吗?
不,不完全.这将删除所有//-子串.要删除这些字符,需要将它们放入[...],如下所示:( replaceAll("[/()-]", "")并且/不需要转义).