web-dev-qa-db-ja.com

Java:文字列から数値を削除する

私はこのコミュニティの助けを借りてユーザー入力から数値を削除することに成功しましたが、以下の私のコードは削除された数値の前のアルファ文字のみを取得します:

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:のみです。文字列の残りの文字を取得するにはどうすればよいですか

22
user2558595

正規表現[^A-Z]は現在、大文字のみを保持するように設定されています。小文字を保持するために、[^A-Za-z]に置き換えることもできます。

13
Gian

これにより、すべての数字が削除されます。

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

次を使用できます。

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

これにより、String firstName1

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

文字列から数値を削除する方法:

これを行うにはそれで十分です

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
Jorgesys

あなたの正規表現:

[^A-Z]

大文字ではないものに一致します。

つまり、小文字も一致します。

あなたはおそらく使用する必要があります:

[^A-Za-z]

代わりに正規表現として。

また、これはASCII以外を考慮しないことに注意してください。それはあなたが望むものかもしれませんし、そうでないかもしれません。

1
fge
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);



}
0
Asan