verwenden Sie können von ASCII Werte aller englischen Zeichen in diesem Programm machen - Ziffern, Groß- und Kleinschreibung Alphabete (Und auch, Leerzeichen müssen überprüft werden).
Die Logik: Durchlaufen jeden Zeichen der Zeichenfolge und prüfen, ob das aktuelle Zeichen ein englische Zeichen ist, das heißt, sein ASCII Wert liegt zwischen 48 und 57 (für die Zahlen 0 bis 9), 65 und 90 (für Großbuchstabenalphabete) oder 97 und 122 (für Kleinbuchstaben) oder ist eine Leerstelle. Wenn es keines von diesen ist, dann ist es ein nicht englischer Charakter.
Hier ist der Code:
String s = <-- THE STRING
int illegal = 0; //to count no. of non english characters
for(int i=0; i< s.length(); i++){
int c = (int)s.charAt(i);
if(!((c>=48 && c<=57)||(c>=65 && c<=90)||(c>=97 && c<=122)||((char)c == ' ')))
illegal++;
}
if(illegal > 0)
System.out.print("String contains non english characters");
else
System.out.print("String does not contain non english characters");
HINWEIS: Stellen Sie sicher, dass die Plattform das Programm laufen auf diese Zeichen unterstützt. Die Zeichencodierung für Chinese ist entweder Unicode
(Unicode unterstützt fast alle Sprachen der Welt) oder UTF-16
. Stellen Sie sicher, dass Sie diese oder sogar die UTF-32
Codierung während der Ausführung des Programms verwenden und dass die Plattform UTF-16/32
unterstützt, wenn nicht Unicode
.
testete ich diesen Code auf dem Computer mit den folgenden Testdaten:
String s = "abcdEFGH 745401 妈妈";
und ich habe die richtige Ausgabe, wie ich dies auf Unicode lief. Auf Plattformen, die Unicode
oder UTF-16/32
nicht unterstützen, behandelt der Compiler die chinesischen Buchstaben 妈妈
als ??????
und es kann einen Fehler in dem Programm verursachen.Die chinesischen Buchstaben, die für das System ??????
werden, werden während der Ausführung einfach ignoriert und daher würde der Ausgang des obigen Eingangs, den ich getestet habe, String does not contain non English characters
sein, was falsch ist. Wenn Sie das Programm auf einem Online-Terminal/IDE oder einem Mobiltelefon ausführen, sollten Sie diesen Faktor beachten. Sie müssen sich keine Sorgen machen, wenn Sie es auf einem Windows/Mac-Computer ausführen.
Ich hoffe, dass es Ihnen hilft.
@Idos Bitte beachten Sie meine EDIT. – lonesome
Überprüfen Sie diese Frage http://stackoverflow.com/q/5238491/4517895 –
@MikhailChibel Wie die Antwort des angegebenen Links zu bearbeiten, so dass die Funktion akzeptiert, wenn die Zeichenfolge Ziffern und Sonderzeichen enthält? (like() <>?! etc) – lonesome