【问题标题】:how to replace some character's of String如何替换字符串的某些字符
【发布时间】:2023-03-04 03:00:01
【问题描述】:

我有一个数字字符串,我想将字符串的前三个字符更改为另一个字符

假设我有一个像 0333XXXXXXX+38333XXXXXXX 这样的字符串。如果字符串的第一个字符是+38,我想用“0”替换它,而剩余的字符串保持不变这是我的代码

        private String modifyNumber(String num) {
                if (num.startsWith("+38")) {
                    num.replaceFirst("+38", "0");}
                   return num;}

“+38”不接受num.replaceFirst

【问题讨论】:

标签: java android android-fragments


【解决方案1】:

您可以使用字符串替换方法。见下文

String number = +9231235410;
String newNumber = number.replace("+92","0");

编辑:

这个是基于你的代码

 private String modifyNumber(String num) {
            if (num.startsWith("+92")) {
                num = num.replaceFirst("\\+(92)", "0");}
            return num;}

注意:

  • 在java中,你需要有双反斜杠,因为\是唯一的 java 字符。
  • Java 字符串是不可变的方法。您需要将其分配给变量以获得结果。 num = num.replaceFirst("\\+(\\d{2})", "0")

【讨论】:

  • 实际上 +92 不接受数字。替换已经尝试过
  • 已经测试了我的代码并且它可以工作。我不知道你的代码中有什么。你可以在这里发布你的代码
  • @NoumanShah 您需要将该 int 解析为字符串,然后尝试...该代码将为您工作
【解决方案2】:

您可以使用 substr() 和 concat 与 '0' 类似,

String str= "+919025858316";
String newstr ="";

if(str.substring(0,3).equals("+91"))
 {
     newstr = "0" + str.substring(3);
 }
else
 {
    newstr = str;
 }
 System.out.println(newstr);

输出为 09025858316

【讨论】:

  • 假设String num = "0231235410";然后你的代码结果错误答案。
【解决方案3】:

像这样检查:

String num = "+921231231231"; // OR String num = "01231231231";

    if(num.startsWith("+92")) {
        String a = "0" + num.substring(3);
        System.out.println("" + a);
    }else{
        System.out.println("" + num);
    }

更新:

 private String modifyNumber(String num) {
        if(num.startsWith("+92")) {
            num = "0" + num.substring(3);
        }
        return num;
    }

【讨论】:

    【解决方案4】:

    您可以只获取字符串的最后 10 位数字,然后添加零。 可能对你有帮助

    String number= str.substring(Math.max(str.length() - 10, 0));
    number ="0"+number;
    

    您可以从这里获得正确的电话号码,无需任何代码。

    这可能对你有帮助。谢谢

    【讨论】:

      【解决方案5】:

      每个国家/地区的手机号码都有一些标准化。手机号码是10位数。只有在这里,最后 10 位数字是手机号码,其余数字是国家代码,所以取最后 10 位数字并在第一个数字上加 0。那么,你的问题就迎刃而解了。

      String number = "+929918001800";
      String newNumber = "0"+number.subString(number.length()-10,number.length());
      

      希望这篇文章能帮到你:)

      【讨论】:

        猜你喜欢
        • 2018-08-23
        • 2012-03-30
        • 1970-01-01
        • 2020-01-23
        • 1970-01-01
        • 1970-01-01
        • 2011-12-31
        • 2014-10-09
        • 2013-07-09
        相关资源
        最近更新 更多