special-characters joptionpane beispiel - JAVA: Prüfe einen String, wenn ein Sonderzeichen darin enthalten ist





7 Answers

Sie können den folgenden Code verwenden, um Sonderzeichen aus einer Zeichenfolge zu erkennen.

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 == true)
        System.out.println("There is a special character in my string ");
     else
         System.out.println("There is no special char.");
     return 0;
 }
}
showinputdialog showoptiondialog showconfirmdialog

Wie überprüfen Sie eine Zeichenfolge, wenn ein Sonderzeichen wie folgt vorhanden ist:

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



Was nennst du gerade "Sonderzeichen"? Wenn Sie etwas wie "alles was nicht alphanumerisch ist" meinen, können Sie die Klasse org.apache.commons.lang.StringUtils (Methoden IsAlpha / IsNumeric / IsWhitespace / IsAsciiPrintable) verwenden.

Wenn es nicht so trivial ist, können Sie eine Regex verwenden, die genau die Zeichenliste definiert, die Sie akzeptieren, und die Zeichenfolge dagegen abgleichen.




Sehen Sie sich die Klasse java.lang.Character an. Es hat einige Testmethoden und Sie können eine finden, die Ihren Bedürfnissen entspricht.

Beispiele: Character.isSpaceChar(c) oder !Character.isJavaLetter(c)




Wenn Sie Buchstaben, Sonderzeichen und Zahlen in Ihrem Passwort mit mindestens 8 Ziffern haben möchten, dann verwenden Sie diesen Code, es funktioniert perfekt

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;

}



Pattern p = Pattern.compile("[\\p{Alpha}]*[\\p{Punct}][\\p{Alpha}]*");
        Matcher m = p.matcher("Afsff%esfsf098");
        boolean b = m.matches();

        if (b == true)
           System.out.println("There is a sp. character in my string");
        else
            System.out.println("There is no sp. char.");



// das ist aktualisierte Version von Code, den ich gepostet habe / * Die isValidName-Methode überprüft, ob der als Argument übergebene Name nicht enthalten sollte - 1.null value oder space 2.any Sonderzeichen 3.Digits (0-9) - Hier ist str2 eine String-Array-Variable, die die geteilte Zeichenkette des Namens speichert, die als Argument übergeben wird. Die Count-Variable zählt die Anzahl der Sonderzeichen. Die Methode gibt true zurück, wenn sie alle Bedingungen erfüllt.

public boolean isValidName(String name)
{
    String specialCharacters=" !#$%&'()*+,-./:;<=>?@[]^_`{|}~0123456789";
    String str2[]=name.split("");
    int count=0;
    for (int i=0;i<str2.length;i++)
    {
        if (specialCharacters.contains(str2[i]))
        {
            count++;
        }
    }       

    if (name!=null && count==0 )
    {
        return true;
    }
    else
    {
        return false;
    }
}



Das hat für mich funktioniert

    String s = "string"; 
    if(Pattern.matches("[a-zA-Z]+", s)) 
    {  
    System.out.println("clear"); 
     }  
     else  
     {  
     System.out.println("buzz"); 
     }  





Related