我找到了以下结果,结果出乎意料:
format number result expected
"000-00-0000" 123456789L "123456789--" "123-45-6789"
"(###)###-####" 1234567890L "(1234567890)-" "(123)456-7890"
"_($* "-"_)" 0 " $ t- 0" " $ t- "
它不能处理非数字格式,例如电话号码,社会安全号码等?
可能会被黑客入侵,但是为此目的不是创建。这些任务可以通过正则表达式来承担,并且更有效和表现力。
第一个示例可以简化为以下
String regex = "^(\d{3})(\d{2})(\d{4})$";
String input = 123456789L + "";
System.out.println(input.replaceAll(regex, "$1-$2-$3")); // 123-45-6789
第二个是以下
String regex = "^(\d{3})(\d{3})(\d{4})$";
String input = 1234567890L + "";
System.out.println(input.replaceAll(regex, "($1)$2-$3")); // (123)456-7890
等...