在Java中如何将电话号码格式化为字符串?

样式:

我一直在存储电话号码,因此我想在将电话号码打印为字符串时简单地添加连字符。

我尝试使用,DecimalFormat但是不喜欢连字符。可能是因为它用于格式化十进制数字而不是long。

long phoneFmt = 123456789L;
DecimalFormat phoneFmt = new DecimalFormat("###-###-####");
System.out.println(phoneFmt.format(phoneNum)); //doesn't work as I had hoped

理想情况下,我也想在区号上加上括号。

new DecimalFormat("(###)-###-####");

正确的方法是什么?

样式:

这就是我最终这样做的方式:

private String printPhone(Long phoneNum) {
    StringBuilder sb = new StringBuilder(15);
    StringBuilder temp = new StringBuilder(phoneNum.toString());

    while (temp.length() < 10)
        temp.insert(0, "0");

    char[] chars = temp.toString().toCharArray();

    sb.append("(");
    for (int i = 0; i < chars.length; i++) {
        if (i == 3)
            sb.append(") ");
        else if (i == 6)
            sb.append("-");
        sb.append(chars[i]);
    }

    return sb.toString();
}

我知道这不支持国际号码,但是我不是在编写“真实”应用程序,因此我对此并不担心。我只接受10个字符作为电话号码。我只是想以某种格式打印它。

感谢您的答复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将数字格式化为货币字符串?

如何将LocalDate格式化为字符串?

如何将数字格式化为十六进制字符串?

Java-如何将数字格式化为2个字符的字符串?

如何将整数格式化为左四个零零的字符串?

Java:将字符串格式化为电话号码

如何将多个字符串格式化为数组格式

如何将数字1格式化为字符串“ 01”以进行汇总?

如何将格式化为数组变量的字符串转换为javascript对象?

如何将SystemTime格式化为字符串?

如何将字符串格式化为十六进制,然后格式化为二进制?

React-如何将电话号码格式化为用户类型

如何将本地电话号码格式化为国际电话号码?

如何将“日期+小时”字符串格式化为日期时间格式

如何将字符串格式化为包含连字符的UUID格式

如何将字符串格式化为信用卡格式

如何格式化电话号码

在Java中,如何将数字格式化为字符串,使其格式为“ xxx.xxx.xxx,yy”?

如何将字符串转换为电话号码

如何在MSSQL中搜索可以以不同格式存储的字符串(电话号码)

将字符串转换为电话号码Ruby

使用谷歌脚本将电话号码字符串从谷歌表单格式化为电子表格到电子邮件草稿中

如何将数字格式化为货币字符串

如何将整数从 datePicker 格式化为日期字符串

JS,如何将没有分隔符的字符串格式化为日期

如何将字符串格式化为 JSON 格式,使其被识别为 JSON 文件

我想使用子字符串返回格式化的电话号码但奇怪的返回

如何将字符串格式化为日期:时间格式?

如何将字符串格式化为电话号码kotlin算法