Ответ 1
Ваше регулярное выражение [^A-Z]
в настоящее время настроено только на сохранение прописных букв. Вы можете попробовать заменить его на [^A-Za-z]
, чтобы сохранить строчные буквы.
Я воспользовался этим сообществом при удалении числовых значений с пользовательского ввода, однако мой код ниже будет извлекать только альфа-символы перед удаленным числом:
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. Как получить оставшиеся символы в строке?
Ваше регулярное выражение [^A-Z]
в настоящее время настроено только на сохранение прописных букв. Вы можете попробовать заменить его на [^A-Za-z]
, чтобы сохранить строчные буквы.
Это приведет к удалению всех цифр:
firstname1 = firstname1.replaceAll("\\d","");
Вы можете использовать:
firstname1 = firstname1.replaceAll("[0-9]","");
Это приведет к удалению всех числовых значений из строки firstName1
.
String firstname1 = "S1234am";
firstname1 = firstname1.replaceAll("[0-9]","");
System.out.println(firstname1);//Prints Sam
Как удалить числовые значения из строки:
для этого достаточно
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 ตรวจสอบ ตรวจสอบ التحقق من التحقق من
Ваше регулярное выражение:
[^A-Z]
соответствует любому, что не является заглавной буквой.
Это означает, что любая строчная буква также будет соответствовать.
Вероятно, вы должны использовать:
[^A-Za-z]
как регулярное выражение.
Заметим также, что это не будет учитывать ничего, кроме ASCII. Он может или не может быть тем, что вы хотите.