当前位置: 首页 > 面试题库 >

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

顾赞
2023-03-14
问题内容

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

我尝试使用,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个字符作为电话号码。我只是想以某种格式打印它。

感谢您的答复。



 类似资料:
  • 问题内容: 一旦用户开始将电话号码键入此格式类型,并且我可以正常工作,我就在格式化文本文件中的文本,但是一旦我从服务器上获得了电话号码,我就这样得到了,所以请您告诉我如何编辑它我从服务器获得相同格式的文件吗? 输入开始后的代码: 问题答案: 用String中的字符进行操作不是很简单。您需要遵循以下条件: 斯威夫特2.1 雨燕2.0 代码将打印

  • 问题内容: 我有一个数据库,其中包含数以百万计的免费格式的电话号码。即,UI不强制执行任何约束,并且用户正在键入他们想要的任何内容。 我正在寻找的是一种Java API,可以尽力将它们转换为一致的格式。理想情况下,API将采用自由文本值和国家/地区代码,并产生有效的国际电话号码或引发异常。 例如,系统中的电话号码可能类似于以下任何一项: 给定美国所在的国家/地区,API将为所有这些产生值“ +1(

  • 问题内容: 我正在使用 SMS应用程序 ,需要能够将发件人的电话号码从 +11234567890转换 为 123-456-7890, 以便可以将其与 MySQL数据库中的 记录进行比较。 数字以后一种格式存储,可在网站上的其他地方使用,我宁愿不更改该格式,因为它将需要修改大量代码。 我将如何使用PHP? 谢谢! 问题答案:

  • 问题内容: 我想知道如何使用angularjs指令在输入字段中自动设置数字格式?在输入字段中输入6042919283时,我希望它显示为604-291-9283。 谢谢 问题答案: 您可以使用UI Utils遮罩。 它允许您定义允许的输入格式,并将为您处理验证以及格式设置

  • 在Github上libphonenumber提供的文档中,有一个演示,它将提供的任何数字转换为国际格式,例如转换为 我想在C#中使用相同的功能。 在libphone的文档中,需要解析号码并提供国家/地区。但是,演示在不提供地区/国家信息的情况下工作。有人能告诉我是怎么做的吗?

  • 问题内容: 格式化以下以字符串形式提供给我的数字的最佳方法是什么? 我希望这是一个具有以下值的字符串: 我该如何格式化? 问题答案: 你可能要看一下DecimalFormat课程。它支持不同的语言环境(例如:在某些国家/地区,其格式会改为)。 你还需要将该字符串转换为数字,可以使用以下方法完成: 代码示例: