将字符串电话号码转换为整数

3

我在Java和Android方面缺乏经验。我正在尝试检索存储在Android手机模拟器中的联系人之一中的电话号码。虽然我成功地获取了它,但该号码以"(987) 654-3210"的格式返回为一个字符串。我想将其转换为整数或长整型。我该怎么做呢?如果我使用Integer.parseInt(String number),它会返回一个NumberFormatException。我也尝试使用Long.valueOf(String number),但失败了。那我应该怎么办呢?我希望它像"9876543210"一样,没有任何括号或连字符。


1
你将如何处理以0开头的电话号码?或者以+开头的国际号码? - John3136
2
电话号码不是整数,也不应该被视为整数。例如,电话号码可能(在本地)以0开头-我的电话号码就是这样的。作为整数,前导0将被剥离。 - AMADANON Inc.
1
你需要使用正则表达式来进行清洗,而不是直接尝试将其解析为长整型或整型。 - everconfusedGuy
1
检查:在Java中从字符串中提取数字 - Paresh Mayani
电话号码不是整数。实际上,甚至没有“整数组”; 正如@AMADANONInc所指出的那样,001与1并不相同。您究竟想要做什么? - seand
显示剩余3条评论
2个回答

8

使用long类型来存储数字会更好。

   String str="(987) 654-3210";
   String stt=str.replaceAll("\\D+","");
   long num= Long.parseLong(stt);
   System.out.println(num);

6
这很简单。您可以像下面这样在Java中使用正则表达式来完成此操作。
phoneStr = str.replaceAll("\\D+","");

这将从字符串中删除非数字字符并给出仅包含数字的结果。然后您可以使用

int number = Integer.parseInt(phoneStr);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接