28

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

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

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

4

7 回答 7

58

这将删除所有数字:

firstname1 = firstname1.replaceAll("\\d","");
于 2013-07-07T20:28:47.693 回答
23

您可以使用:

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

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

    String firstname1 = "S1234am";
    firstname1 = firstname1.replaceAll("[0-9]","");
    System.out.println(firstname1);//Prints Sam
于 2013-07-07T20:32:04.377 回答
18

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

于 2013-07-07T20:28:06.957 回答
6

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

做到这一点就足够了

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 ตรวจสอบ ตรวจสอบ التحقق من التحقق من
于 2017-09-25T21:40:50.930 回答
1

你的正则表达式:

[^A-Z]

匹配任何不是大写字母的东西。

这意味着任何小写字母也将匹配。

您可能应该使用:

[^A-Za-z]

作为一个正则表达式。

另请注意,这不会解释 ASCII 以外的任何内容。它可能是你想要的,也可能不是。

于 2013-07-07T20:29:10.757 回答
0
public static void main(String[] args) {
    String address = "34732483dhshdsdhajsa8ejdsdd";
    char[] chars = address.toCharArray();
    String aString = "";

    for (int i = 0; i < chars.length; i++) {
        if (!Character.isDigit(chars[i])) {
            aString =aString + chars[i]; 


        }

    }System.out.println(aString);



}
于 2019-02-28T17:14:00.523 回答
-1
/*Remove numbers from given specific string*/
public class NewClass6 {

    public static void main(String[] args){
        String s= "hello647hi74joke";
        char[] ch= s.toCharArray();
        System.out.println("Result = " + getString(ch));
    }

    static String getString(char[] ch){
        int m = 0;
        char[] chr = new char[50];
        char[] k = {'0','1','2','3','4','5','6','7','8','9'};

        for(int i = 0; i < ch.length; i++){
           for(int j = 0; j < k.length; j++){  
               if(ch[i]==k[j]){
                   m--;
                   break;
               }
               else {
                   chr[m]=ch[i];
               }
            }
            m++;
         }

         String st = String.valueOf(chr);
         return st;
     }
}
于 2018-03-15T13:45:06.900 回答