J'ai réussi avec l'aide de cette communauté à supprimer les valeurs numériques des entrées utilisateur, cependant, mon code ci-dessous ne récupérera que les caractères alpha avant le numérique qui a été supprimé:
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);
}
}
Par exemple, si l'entrée utilisateur = S1234am, je ne fais que revenir: S. Comment puis-je récupérer les caractères restants dans la chaîne?
Votre expression régulière [^A-Z]
n'est actuellement configuré que pour conserver les majuscules. Vous pouvez essayer de le remplacer par [^A-Za-z]
pour conserver également les minuscules.
Cela supprimera tous les chiffres:
firstname1 = firstname1.replaceAll("\\d","");
Vous pouvez utiliser:
firstname1 = firstname1.replaceAll("[0-9]","");
Cela supprimera toutes les valeurs numériques de la chaîne firstName1
.
String firstname1 = "S1234am";
firstname1 = firstname1.replaceAll("[0-9]","");
System.out.println(firstname1);//Prints Sam
Comment supprimer des valeurs numériques d'une chaîne:
pour ce faire, il suffira
str.replaceAll("[^A-Za-z]","");
mais que faire si votre chaîne contient des caractères comme:
String str = "stackoverflow elenasys +34668555555 # Пивоварова Пивоварова հայեր հայեր አማሪኮ አማሪኮ kiểm tra kiểmtra ตรวจสอบ ตรวจสอบ التحقق من التحقق من";
la plupart des caractères seront également supprimés, donc c'est une meilleure option:
str = str.replaceAll("[\\d.]", "");
pour supprimer toutes les valeurs numériques et obtenir comme résultat:
stackoverflow elenasys + # Пивоварова Пивоварова հայեր հայեր አማሪኮ አማሪኮ kiểm tra kiểmtra ตรวจสอบ ตรวจสอบ التحقق من التحقق من
Votre expression régulière:
[^A-Z]
correspond à tout ce qui n'est pas un lettre majuscule.
Ce qui signifie que toute lettre minuscule correspondra également.
Vous devriez probablement utiliser:
[^A-Za-z]
comme expression régulière à la place.
Notez également que cela ne représentera rien d'autre que ASCII. Cela peut ou non être ce que vous voulez.
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);
}