我正在尝试将给定的手机号码格式化为给定的格式。数字将作为普通的10位数字存储在数据库中,并在UI中显示我需要格式化此号码。
我正在使用JSTL在JSP端显示它。我计划创建一个自定义函数,该函数应接受手机号码/电话号码和所需格式,并将返回所需格式的数字,如
(xxx)xxx-xxx XXX-XXX-XXX
我试图根据regExp分割给定的电话号码但不太确定如何执行此操作
String phoneNumber="1232345678";
Pattern pattern=Pattern.compile("\\d{3}\\d{3}\\d{4}");
String [] s=pattern.split(phoneNumber);
分割给定字符串和den的另一种方法是使用连接产生所需的格式。
实现这一目标的最佳方式是什么
答案 0 :(得分:2)
您只需要一行:
String output = phoneNumber.replaceAll("(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3");
此代码产生以下效果:
1232345678 --> (123) 234-5678
这里的道德是:
答案 1 :(得分:0)
看看蛮力解决方案:
只需将格式设置为“(xxx)xxx-xxxx”,代码将用电话号码中的数字替换x。
public static String format(String number, String format) {
char[] arr = new char[format.length()];
int i = 0;
for (int j = 0; j < format.length(); j++) {
if (format.charAt(j) == 'x')
arr[j] = number.charAt(i++);
else
arr[j] = format.charAt(j);
}
return new String(arr);
}