转换电话号码" + 2125551212"格式化"(212)555-1212"使用Twilio SDK

时间:2017-01-10 21:36:56

标签: java sms twilio

我将电话号码存储为字符串String,格式为+12125551212。使用Twilio SDK(如果可能)我想以更友好的(212) 555-1212格式将该电话号码转换为字符串。

以下是使用com.google.i18n.phonenumbers

进行操作的方法
String phoneNumber = "+12125551212";
try {
  Phonenumber.PhoneNumber parsedPhoneNumber = phoneUtil.parse(phoneNumber, "US");
  phoneNumber = phoneUtil.format(parsedPhoneNumber, PhoneNumberUtil.PhoneNumberFormat.NATIONAL);
} catch (NumberParseException e) {
  logger.error("Error parsing phone number {}", phoneNumber);
}

Twilio SDK中有类似内容吗?

(我希望非正则表达式,非字符串操作Twilio特定的答案,如果存在的话。)

2 个答案:

答案 0 :(得分:2)

Twilio开发者传道者在这里。

您可以使用Twilio's Lookup API执行此操作以及更多操作。您将找到API文档here

以下是如何使用API​​格式化电话号码的完整工作示例。

import java.util.HashMap;
import java.util.Map;

import com.twilio.Twilio;
import com.twilio.rest.lookups.v1.PhoneNumber;

public class Lookup {
  // Find your Account Sid and Token at twilio.com/user/account
  public static final String ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
  public static final String AUTH_TOKEN = "your_auth_token";

  public static void main(String[] args) {
    Twilio.init(ACCOUNT_SID, AUTH_TOKEN);

    PhoneNumber number = PhoneNumber
        .fetcher(new com.twilio.type.PhoneNumber("+15108675309"))
        .setType("carrier")
        .fetch();

    System.out.println(number.getNationalFormat());
  }
}

希望这能帮到你!

答案 1 :(得分:-1)

https://twilio.github.io/twilio-java/

转到PhoneNumber,它有一个名为Get National Format的方法,还可以查看可能正是您正在寻找的PhoneNumber.Type。

否则我只会使用字符串索引+解析,并创建一个转换nationalToUS或USToNational等的实用程序函数。