7

電話番号文字列エントリから + 記号を除くすべての特殊文字を削除したいと考えています。それも、それが最初の場所でのみ発生している場合。例: +911234567890 は有効ですが、+91+1234#1234 は無効です。

4

6 に答える 6

28

次のようなものを使用できます。

String number = "+91+1234#1234"
number=number.replaceAll("[\\D]", "")

これにより、数字以外のすべての文字がスペースに置き換えられますが、最初に「+」を追加するには、結果にプレフィックスとして追加する必要がある場合があります。

お役に立てれば!

于 2013-06-24T06:12:51.387 に答える
3

最良の方法は、正規表現を使用することです。

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  + ");
    }
 }
}
于 2013-06-24T06:40:29.367 に答える
2
Scanner scan=new Scanner(System.in);
        String input=scan.next();
        String onlyDigits = input.replaceAll("[^0-9]+","");
        System.out.println(onlyDigits);
于 2013-06-24T06:24:59.097 に答える
1

これを試して

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);
}
}
于 2013-06-24T06:26:30.547 に答える
0

ここにあなたへの答えがありますが、試してみてから、自分自身を改善できるように質問してください. 少なくとも、コードを直接使用せずに理解するようにしてください

public static boolean isValid(String number) {

        if(number.startsWith("+")){
            number=number.substring(1);
        }
        try {
             Integer.parseInt(number);
        } catch (Exception e) {
            return false;
        }
        return true;
    }
于 2013-06-24T06:12:44.370 に答える
0

次のように、 MaskFormatterを使用して入力を制限します。

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

コンストラクターの文字列「+###」は、テキストフィールドに入力できる内容を定義します。この場合、最初の文字は「+」で、次の 3 文字は数字である必要があります。詳細については、APIを参照してください。

于 2013-06-24T06:36:51.943 に答える