Ich benötige eine Methode, mit der ich feststellen kann, ob ein String nicht alphanumerische Zeichen enthält.
Zum Beispiel, wenn der String "abcdef?" oder "abcdefà" muss die Methode true zurückgeben.
Ich benötige eine Methode, mit der ich feststellen kann, ob ein String nicht alphanumerische Zeichen enthält.
Zum Beispiel, wenn der String "abcdef?" oder "abcdefà" muss die Methode true zurückgeben.
Antworten:
Verwenden von Apache Commons Lang:
!StringUtils.isAlphanumeric(String)
Alternativ können Sie die Zeichenfolgen von String durchlaufen und Folgendes überprüfen:
!Character.isLetterOrDigit(char)
Sie haben noch ein Problem: Ihre Beispielzeichenfolge "abcdefà" ist alphanumerisch, da à
es sich um einen Buchstaben handelt. Aber ich denke, Sie möchten, dass es als nicht alphanumerisch betrachtet wird, oder?!
Vielleicht möchten Sie stattdessen einen regulären Ausdruck verwenden:
String s = "abcdefà";
Pattern p = Pattern.compile("[^a-zA-Z0-9]");
boolean hasSpecialChar = p.matcher(s).find();
Ein Ansatz besteht darin, dies mit der String-Klasse selbst zu tun. Nehmen wir an, Ihre Zeichenfolge ist ungefähr so:
String s = "some text";
boolean hasNonAlpha = s.matches("^.*[^a-zA-Z0-9 ].*$");
Eine andere Möglichkeit besteht darin, eine externe Bibliothek wie Apache Commons zu verwenden:
String s = "some text";
boolean hasNonAlpha = !StringUtils.isAlphanumeric(s);
hasSpecialCharacters(String)
mit seiner eigenen Definition von "speziell".
String.matches(...)
In Java wird geprüft, ob der reguläre Ausdruck mit der gesamten Zeichenfolge übereinstimmt .
boolean hasNonAlpha = ! … ^[A-Za-z0-9 ]*$
Sie müssen jedes Zeichen in der Zeichenfolge durchgehen und Character.isDigit(char);
oder aktivierenCharacter.isletter(char);
Alternativ können Sie Regex verwenden.
Verwenden Sie diese Funktion, um zu überprüfen, ob eine Zeichenfolge alphanumerisch ist:
public boolean isAlphanumeric(String str)
{
char[] charArray = str.toCharArray();
for(char c:charArray)
{
if (!Character.isLetterOrDigit(c))
return false;
}
return true;
}
Es erspart das Importieren externer Bibliotheken und der Code kann leicht geändert werden, wenn Sie später verschiedene Validierungsprüfungen für Zeichenfolgen durchführen möchten.
Obwohl dies für Zahlen nicht funktioniert, können Sie überprüfen, ob die Werte für Klein- und Großbuchstaben gleich sind oder nicht. Bei nicht alphabetischen Zeichen sind sie gleich. Sie sollten zuvor nach Zahlen suchen, um die Benutzerfreundlichkeit zu verbessern