Барлық арнайы таңбаларды телефон нөмірі жолының жазбасынан алып тастаңыз +, тек бірінші орында

Барлық символдарды + символдан басқа, телефон нөмірі жолының енгізілімінен алып тастағым келеді. Бұл да, егер ол тек бірінші орында болса. Мысалы: +911234567890 жарамды болуы керек, бірақ + 91 + 1234 # 1234 жарамсыз болуы керек.

4
Жалғастырыңыз және орындаңыз!
қосылды автор Juned Ahsan, көзі
сіз ештеңе көрмегенсіз
қосылды автор Sanjaya Liyanage, көзі
Plz ur кодын бере алады.
қосылды автор Ganesh Joshi, көзі

9 жауаптар

Мынадай нәрсені пайдалана аласыз:

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

Бұл барлық бос емес таңбаларды бос орынмен ауыстырады, ал содан кейін сіздің қосымша «+» үшін сіз оны нәтижеге префикс ретінде қосуыңыз қажет болуы мүмкін.

Бұл көмектеседі деп үміттенемін!

22
қосылды

Үздік әдіс - тұрақты өрнекті пайдалану:

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  + ");
    }
 }
}

Бар жақсылықты тілеймін.

2
қосылды
иә, мен осы сәйкестендіргіш тырыстық, мен жолдың символдары бар екенін анықтай аламын, бірақ оларды ауыстыра алмаймын.
қосылды автор S P, көзі

Үздік әдіс - тұрақты өрнекті пайдалану:

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  + ");
    }
 }
}

Бар жақсылықты тілеймін.

2
қосылды
иә, мен осы сәйкестендіргіш тырыстық, мен жолдың символдары бар екенін анықтай аламын, бірақ оларды ауыстыра алмаймын.
қосылды автор S P, көзі

Үздік әдіс - тұрақты өрнекті пайдалану:

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  + ");
    }
 }
}

Бар жақсылықты тілеймін.

2
қосылды
иә, мен осы сәйкестендіргіш тырыстық, мен жолдың символдары бар екенін анықтай аламын, бірақ оларды ауыстыра алмаймын.
қосылды автор S P, көзі

Мұны көріңіз

public static void main(String arg[]){

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

for (int i=0;i
1
қосылды
Scanner scan=new Scanner(System.in);
        String input=scan.next();
        String onlyDigits = input.replaceAll("[^0-9]+","");
        System.out.println(onlyDigits);
1
қосылды

Міне, сіз үшін жауап. Бірақ, өзіңізді жетілдіру үшін сұрақ қойып, сұрақ қойыңыз. Кем дегенде кодты тікелей қолданбай түсінуге тырысыңыз

public static boolean isValid(String number) {

        if(number.startsWith("+")){
            number=number.substring(1);
        }
        try {
             Integer.parseInt(number);
        } catch (Exception e) {
            return false;
        }
        return true;
    }
0
қосылды
Эй, мен келісемін, мен кодты орналастырдым, бірақ бұл ештеңені көрмегендігім емес. Сондай-ақ, кейіпкерлерді ауыстыруды сұрадым. thnx әрқашан сіздің ұсынысыңыз үшін :)
қосылды автор S P, көзі

Кірісті шектеу үшін MaskFormatter пайдаланыңыз , сол сияқты бірнәрсе

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

Конструктордағы «+ ###» жолы мәтін өрісіне теруге болатындығын анықтайды; бұл жағдайда бірінші таңба «+», ал келесі үшеуі - сандар болуы керек. Мәліметтер алу үшін API бөлімін қараңыз.

0
қосылды

Кірісті шектеу үшін MaskFormatter пайдаланыңыз , сол сияқты бірнәрсе

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

Конструктордағы «+ ###» жолы мәтін өрісіне теруге болатындығын анықтайды; бұл жағдайда бірінші таңба «+», ал келесі үшеуі - сандар болуы керек. Мәліметтер алу үшін API бөлімін қараңыз.

0
қосылды