Java:从字符串中删除数值

时间:2013-07-07 20:26:41

标签: 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);
    }
}

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

7 个答案:

答案 0 :(得分:38)

这将删除所有数字:

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

答案 1 :(得分:19)

您可以使用:

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

这将删除字符串firstName1中的所有数值。

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

答案 2 :(得分:12)

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

答案 3 :(得分: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 ตรวจสอบ ตรวจสอบ التحقق من التحقق من

答案 4 :(得分:1)

你的正则表达式:

[^A-Z]

匹配任何非大写字母的内容。

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

您应该使用:

[^A-Za-z]

作为正则表达式。

另请注意,除了ASCII之外,这不会考虑任何其他因素。它可能是,也可能不是你想要的。

答案 5 :(得分: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);



}

答案 6 :(得分:-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;
     }
    }