如何替换String中的一些字符

时间:2016-05-05 06:14:29

标签: java android android-fragments

我有一个数字字符串我想用另一个字符

更改字符串前三个字符

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

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

" + 38"我不接受num.replaceFirst

5 个答案:

答案 0 :(得分:3)

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

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 character。
  • Java字符串是不可变的方法。您需要将其分配给变量以获得结果。 num = num.replaceFirst("\\+(\\d{2})", "0")

答案 1 :(得分:1)

你可以使用substr()和concat with' 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

答案 2 :(得分:1)

像这样检查:

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;
    }

答案 3 :(得分:0)

你可以得到字符串的最后10位数,然后你可以添加零。 可能会帮助你

localhost:3000

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

可能对你有帮助。谢谢

答案 4 :(得分:0)

每个国家的手机号码都有一些标准化。手机号码是10位数。仅在此处,最后10位数字是移动号码,其余数字是国家代码,因此取最后10位数字并将0添加到第一位数字。然后,您的问题将得到解决。

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

我希望这个会帮助你:)。