如何将java中的电话号码格式化为Android

如何将java中的电话号码格式化为Android,java,android,string,libphonenumber,Java,Android,String,Libphonenumber,我有一个从API检索的电话号码列表,它是这样的: (22)9969-6666我需要更改它,使其看起来像:+55229966666 到目前为止,我尝试的是: String phoneNum = "(22) 9969-6666 "; System.out.println(phoneNum.replaceFirst("(\\d{3})(\\d{3})(\\d+)", "($1)-$2-$3")); 给我以下结果: 10-08 00:23

我有一个从API检索的电话号码列表,它是这样的: (22)9969-6666我需要更改它,使其看起来像:+55229966666

到目前为止,我尝试的是:

                String phoneNum = "(22) 9969-6666 ";
                System.out.println(phoneNum.replaceFirst("(\\d{3})(\\d{3})(\\d+)", "($1)-$2-$3"));
给我以下结果:

10-08 00:23:04.155  30677-30677/br.com I/System.out﹕ (22) (996)-966-66

为什么不将任何非数字字符替换为空字符,并在结果字符串前面添加
+
符号

String phoneNum = "(22) 9969-6666 ";
phoneNum = "+" + phoneNum.replaceAll("[^\\d]", "");
System.out.println(phoneNum);

输出:+229969666

我对java编程语言不熟悉,不知道怎么做,非常感谢@不客气。我刚刚更新了答案中的正则表达式,所以请确保获得最新的正则表达式。