web-dev-qa-db-fra.com

Java: suppression de valeurs numériques de la chaîne

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?

22
user2558595

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.

13
Gian

Cela supprimera tous les chiffres:

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

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
20
Vishal K

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 ตรวจสอบ ตรวจสอบ التحقق من التحقق من
4
Jorgesys

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.

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