Comment vérifier si une chaîne contient un caractère spécial comme :
[,],{,},{,),*,|,:,>,
Comment vérifier si une chaîne contient un caractère spécial comme :
[,],{,},{,),*,|,:,>,
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;
}
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;
}
}
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 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.