Java:从字符串中删除数值

use*_*595 22 java string removeall

我已经在这个社区的帮助下取代了从用户输入中删除数值,但是,我的代码只会在删除数字之前检索字母字符:

import java.util.Scanner;

public class Assignment2_A {

    public static void main(String[] args) {
        Scanner firstname = new Scanner(System.in);
        String firstname1 = firstname.next();
        firstname1 = firstname1.replaceAll("[^A-Z]","");
        System.out.println(firstname1);
    }
}
Run Code Online (Sandbox Code Playgroud)

例如,如果用户输入= S1234am,我只会回来:S.如何检索字符串中的剩余字符?

jlo*_*rdo 44

这将删除所有数字:

firstname1 = firstname1.replaceAll("\\d","");
Run Code Online (Sandbox Code Playgroud)


Vis*_*l K 21

您可以使用:

firstname1 = firstname1.replaceAll("[0-9]","");
Run Code Online (Sandbox Code Playgroud)

这将从String中删除所有数值firstName1.

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


Gia*_*ian 13

您的正则表达式[^A-Z]当前仅配置为保留大写字母.您可以尝试替换它[^A-Za-z]以保留小写字母.


Jor*_*sys 6

如何从字符串中删除数值:

这样做就足够了

str.replaceAll("[^A-Za-z]","");
Run Code Online (Sandbox Code Playgroud)

但是如果您的字符串包含以下字符怎么办:

String str = "stackoverflow elenasys +34668555555 # ?????????? ?????????? ????? ????? ????     ???? ki?m tra ki?mtra ??????? ??????? ?????? ?? ?????? ??";
Run Code Online (Sandbox Code Playgroud)

大多数字符也将被删除,所以这是一个更好的选择

str = str.replaceAll("[\\d.]", "");
Run Code Online (Sandbox Code Playgroud)

删除所有数值并获得结果:

stackoverflow elenasys + # ?????????? ?????????? ????? ????? ????     ???? ki?m tra ki?mtra ??????? ??????? ?????? ?? ?????? ??
Run Code Online (Sandbox Code Playgroud)