【问题标题】:Converting the string phone number to integer [closed]将字符串电话号码转换为整数 [关闭]
【发布时间】:2013-06-27 03:20:57
【问题描述】:

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

【问题讨论】:

  • 您将如何处理以 0 开头的电话号码?还是以 + 开头的国际号码?
  • 你可能想阅读this
  • 电话号码不是整数,不应被视为整数。例如,电话号码可能(本地)以 0 开头——我的就是这样。作为一个整数,前导 0 将被去除。
  • 您需要使用正则表达式对其进行清理,而不是尝试将其直接解析为长整数或整数

标签: java android


【解决方案1】:

使用long存储号码会更好

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

【讨论】:

    【解决方案2】:

    这应该很简单。您可以在 java 中使用正则表达式来执行此操作,如下所示

    phoneStr = str.replaceAll("\\D+","");
    

    这将从字符串中删除非数字并只给你数字。然后你可以使用

    int number = Integer.parseInt(phoneStr);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多