私はこのコミュニティの助けを借りてユーザー入力から数値を削除することに成功しましたが、以下の私のコードは削除された数値の前のアルファ文字のみを取得します:
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:のみです。文字列の残りの文字を取得するにはどうすればよいですか
正規表現[^A-Z]
は現在、大文字のみを保持するように設定されています。小文字を保持するために、[^A-Za-z]
に置き換えることもできます。
これにより、すべての数字が削除されます。
firstname1 = firstname1.replaceAll("\\d","");
次を使用できます。
firstname1 = firstname1.replaceAll("[0-9]","");
これにより、String 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以外を考慮しないことに注意してください。それはあなたが望むものかもしれませんし、そうでないかもしれません。
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);
}