Java: удаление числовых значений из строки - программирование
Подтвердить что ты не робот

Java: удаление числовых значений из строки

Я воспользовался этим сообществом при удалении числовых значений с пользовательского ввода, однако мой код ниже будет извлекать только альфа-символы перед удаленным числом:

import java.util.Scanner;

public class Assignment2_A {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner firstname = new Scanner(System.in);
        System.out.println("Please enter your first name:");
        String firstname1 = firstname.next();
        firstname1 = firstname1.replaceAll("[^A-Z]","");
        System.out.println(firstname1);


        }

}

Например, если пользовательский ввод = S1234am, я возвращаюсь обратно: S. Как получить оставшиеся символы в строке?

4b9b3361

Ответ 1

Ваше регулярное выражение [^A-Z] в настоящее время настроено только на сохранение прописных букв. Вы можете попробовать заменить его на [^A-Za-z], чтобы сохранить строчные буквы.

Ответ 2

Это приведет к удалению всех цифр:

firstname1 = firstname1.replaceAll("\\d","");

Ответ 3

Вы можете использовать:

firstname1 = firstname1.replaceAll("[0-9]","");

Это приведет к удалению всех числовых значений из строки firstName1.

    String firstname1 = "S1234am";
    firstname1 = firstname1.replaceAll("[0-9]","");
    System.out.println(firstname1);//Prints Sam

Ответ 4

Как удалить числовые значения из строки:

для этого достаточно

str.replaceAll("[^A-Za-z]","");

но что, если ваша строка содержит символы вроде:

String str = "stackoverflow elenasys +34668555555 # Пивоварова Пивоварова հայեր հայեր አማሪኮ     አማሪኮ kiểm tra kiểmtra ตรวจสอบ ตรวจสอบ التحقق من التحقق من";

большинство символов также будут удалены, поэтому это лучший вариант:

str = str.replaceAll("[\\d.]", "");

чтобы удалить все числовые значения и получить результат:

stackoverflow elenasys + # Пивоварова Пивоварова հայեր հայեր አማሪኮ     አማሪኮ kiểm tra kiểmtra ตรวจสอบ ตรวจสอบ التحقق من التحقق من

Ответ 5

Ваше регулярное выражение:

[^A-Z]

соответствует любому, что не является заглавной буквой.

Это означает, что любая строчная буква также будет соответствовать.

Вероятно, вы должны использовать:

[^A-Za-z]

как регулярное выражение.

Заметим также, что это не будет учитывать ничего, кроме ASCII. Он может или не может быть тем, что вы хотите.