我将电话号码存储为字符串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特定的答案,如果存在的话。)
答案 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等的实用程序函数。