99 votes

Vérifiez si une chaîne contient un caractère spécial

Comment vérifier si une chaîne contient un caractère spécial comme :

[,],{,},{,),*,|,:,>,

149voto

r3zn1k Points 973
Pattern p = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("I am a string");
boolean b = m.find();

if (b)
   System.out.println("There is a special character in my string");

30voto

Pir Fahim Shah Points 1786

Si vous voulez avoir des LETTRES, des CARACTÈRES SPÉCIAUX et des CHIFFRES dans votre mot de passe avec au moins 8 chiffres, alors utilisez ce code, il fonctionne parfaitement

public static boolean Password_Validation(String password) 
{

    if(password.length()>=8)
    {
        Pattern letter = Pattern.compile("[a-zA-z]");
        Pattern digit = Pattern.compile("[0-9]");
        Pattern special = Pattern.compile ("[!@#$%&*()_+=|<>?{}\\[\\]~-]");
        //Pattern eight = Pattern.compile (".{8}");


           Matcher hasLetter = letter.matcher(password);
           Matcher hasDigit = digit.matcher(password);
           Matcher hasSpecial = special.matcher(password);

           return hasLetter.find() && hasDigit.find() && hasSpecial.find();

    }
    else
        return false;

}

28voto

Ashish Sharma Points 6

Vous pouvez utiliser le code suivant pour détecter le caractère spécial de la chaîne.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DetectSpecial{ 
public int getSpecialCharacterCount(String s) {
     if (s == null || s.trim().isEmpty()) {
         System.out.println("Incorrect format of string");
         return 0;
     }
     Pattern p = Pattern.compile("[^A-Za-z0-9]");
     Matcher m = p.matcher(s);
    // boolean b = m.matches();
     boolean b = m.find();
     if (b)
        System.out.println("There is a special character in my string ");
     else
         System.out.println("There is no special char.");
     return 0;
 }
}

15voto

fastcodejava Points 22174

S'il correspond [a-zA-Z0-9 ]*, il n'y a pas de caractères spéciaux dedans.

10voto

Comment appelez-vous "caractère spécial" ? Si vous voulez dire quelque chose comme "quelque chose qui n'est pas alphanumérique", vous pouvez utiliser org.apache.commons.lang.StringUtils class (methods IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable).

Si ce n'est pas si trivial, vous pouvez utiliser une regex qui définit la liste de caractères exacte que vous acceptez et faire correspondre la chaîne contre elle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X