Java 从电话号码字符串条目中删除除+;只发生在最初的地方

Java 从电话号码字符串条目中删除除+;只发生在最初的地方,java,android,regex,string,replace,Java,Android,Regex,String,Replace,我想从电话号码字符串条目中删除除+符号以外的所有特殊字符。这也是,如果它只是发生在第一位。 示例:+911234567890应该是有效的,但+91+1234#1234应该是无效的。这里有一个答案给你。但是请尝试一下,然后问这个问题,这样你可以提高自己。至少试着理解代码而不直接使用它 public static boolean isValid(String number) { if(number.startsWith("+")){ number=numbe

我想从电话号码字符串条目中删除除+符号以外的所有特殊字符。这也是,如果它只是发生在第一位。
示例:+911234567890应该是有效的,但+91+1234#1234应该是无效的。

这里有一个答案给你。但是请尝试一下,然后问这个问题,这样你可以提高自己。至少试着理解代码而不直接使用它

public static boolean isValid(String number) {

        if(number.startsWith("+")){
            number=number.substring(1);
        }
        try {
             Integer.parseInt(number);
        } catch (Exception e) {
            return false;
        }
        return true;
    }

您可以使用以下内容:

String number = "+91+1234#1234"
number=number.replaceAll("[\\D]", "")
这将用空格替换所有非数字字符,但对于开头的额外“+”字符,可能需要将其作为前缀添加到结果中

希望这有帮助

试试这个

Scanner scan=new Scanner(System.in);
        String input=scan.next();
        String onlyDigits = input.replaceAll("[^0-9]+","");
        System.out.println(onlyDigits);
public static void main(String arg[]){

String num="+45*#545454*j";
String edited="";

for (int i=0;i<num.length();i++){

char c=num.charAt(i);
    if (i==0&&c=='+'){
        edited+=c;
    }
    else if (Character.isDigit(c)){
        edited+=c;
    }

}
System.out.println(edited);
}
}
publicstaticvoidmain(字符串arg[]){
字符串num=“+45*#5454*j”;
字符串编辑=”;
对于(inti=0;i使用a来约束输入,如下所示

    MaskFormatter formatter = null;
    try {
        formatter = new MaskFormatter("+###");
    } catch (ParseException e) {
        e.printStackTrace();
    }
    JFormattedTextField tf = new JFormattedTextField(formatter);

构造函数中的字符串“+###”定义了可以在文本字段中键入的内容;在这种情况下,第一个字符必须是“+”,以下三个字符必须是数字。有关详细信息,请参阅。

最好的方法是使用正则表达式:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main
{
    public static void main(String[] args)
    {
    String sPhoneNumber = "+911234567890";

    Pattern pattern = Pattern.compile("^[+]\\d*");
    Matcher matcher = pattern.matcher(sPhoneNumber);

    if (matcher.matches()) {
        System.out.println("Phone Number Valid");
    } else {
        System.out.println("Phone Number must start from  + ");
    }
 }
}

你什么都没试过请你提供你的代码。嘿,我同意我没有发布代码,但这并不意味着我什么都没试过。另外,我要求替换字符,而不是通过捕获异常来查找。无论如何,谢谢你的建议:)是的,我尝试了这个匹配器,我能够检测到字符串中有符号,但我无法替换它们。