【问题标题】:how to remove special character from string except + in android?如何在android中从字符串中删除除+之外的特殊字符?
【发布时间】:2017-04-24 11:40:46
【问题描述】:

我正在从通讯录中获取号码并将其发送到服务器。我得到这样的数字 (+91)942 80-60 135 但我想要这样的结果 +9428060135。+ 必须是字符串数字的第一个字符。

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我试过这个:-String s = number.replaceAll("\\W", "");但它替换了所有特殊字符。但我想要 + 否则它工作正常。
  • number.replaceAll("[^(\\d+)]", "");
  • @ShreyanshShah 检查 #A Mathew 的 cmets

标签: android


【解决方案1】:

在您的示例中,您希望将前缀替换为单个 + 字符。您还想从数字字符串中删除其他非数字字符。您可以这样做:

String number = "(+91)942 80-60 135";
number = "+" + number.replaceAll("\\(\\+\\d+\\)|[^\\d]", "");

正则表达式匹配任何前缀(左括号后跟+,后跟一个或多个数字,后跟右括号)任何非数字字符,并删除它们。根据需要将其连接到前导 +。此代码还将处理数字字符串中的+ 字符,例如+9428060135++++(+91)9428060135+++

如果您只是想删除任何不是数字也不是+ 的字符,代码将是:

String number = "(+91)942 80-60 135";
number = number.replaceAll("[^\\d+]", "");

但请注意,这将保留前缀中的数字,这与您的示例不同。

【讨论】:

    【解决方案2】:

    您可以使用String.replace(oldChar, newChar)。使用下面的代码

    String phone = "(+91)942 80-60 135"; // fetched string
    String  trimmedPhone = phone.replace("(","").replace(")","").replace("-","").trim();
    

    我希望它对你有用。

    【讨论】:

      【解决方案3】:

      检查一下。将您的字符串传递给此函数或按照代码使用

      字符串 inputString = "(+91)942 80-60 135";

      public void removeSpecialCharacter(String inputString) {
      
          String replaced = inputString.replaceAll("[(\\-)]", "");
          String finalString = replaced.replaceAll(" ", "");
          Log.e("String Output", " " + replaced + " " + second);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-11
        • 2016-01-23
        相关资源
        最近更新 更多