Chars vergleichen ohne Betrachtung der Groß und Kleinschreibung

schlelia

Aktives Mitglied
Hallo,
für ein Java Programm muss ich Chars vergleichen. Nur soll z.B. a und A gleichermaßen behandelt werden.
Ich will ja nicht für jeden Buchstaben da hier vergleichen:
Java:
if (bsp.charAt(2) == 'a' || bsp.charAt(2) == 'A')
Kann ich da irgendwie machen ohne jetzt Stringmethoden außer .length und.charAt zu verwenden.?
Danke für alle Antworten.
 
Zuletzt bearbeitet:

Oneixee5

Top Contributor
Ein Blick in die ASCII-Tabelle würde da helfen. Klein- und Großbuchstaben liegen jeweils 32 auseinander. So sollte ein generischer Vergleich möglich sein. Großbuchstaben liegen im Bereich zwischen dez. 65 und 90, Kleinbuchstaben zwischen 97 und 122. Somit ist es möglich die 2 Buchstabenklassen zu unterscheiden. Befinden sich beide Buchstaben in unterschiedlichen Klassen, muss einfach zum Großbuchstaben 32 addiert werden, dann können wieder beide Char's mit == verglichen werden.
 

mihe7

Top Contributor
Der richtige Weg wäre, die passenden Klassen und Methoden zu verwenden. Wenn das nicht erlaubt ist, musst Du das zu Fuß machen.
Java:
if ((bsp.charAt(ix) & ~0x20) == 'A') {
   System.out.println("an a/A");
}
Das funktioniert bei Buchstaben A-Z und Umlauten.
 

Oneixee5

Top Contributor
Ein Blick in die ASCII-Tabelle würde da helfen. Klein- und Großbuchstaben liegen jeweils 32 auseinander. So sollte ein generischer Vergleich möglich sein. Großbuchstaben liegen im Bereich zwischen dez. 65 und 90, Kleinbuchstaben zwischen 97 und 122. Somit ist es möglich die 2 Buchstabenklassen zu unterscheiden. Befinden sich beide Buchstaben in unterschiedlichen Klassen, muss einfach zum Großbuchstaben 32 addiert werden, dann können wieder beide Char's mit == verglichen werden.
Ich hatte gehofft, dass hier noch jemand ergänzt. Leider kam mir vorhin etwas wichtiges dazwischen.
Der Wert/Unterschied 32 ist ziemlich auffällig und entspricht 2^16 also dem 16. Bit im Char. Optimalerweise kann man dieses ja durch bitweises Oder setzen. Mit char | 32 würde man also aus einem Großbuchstaben einen kleinen machen. Damit lässt sich viel Aufwand sparen:
boolean result = char1 == char2 || (char1 | 32) == (char2 | 32);
Das sollte klar sein: char1 == char2. Als nächstes folgt ein logisches Oder || , dann folgt der nächste Vergleich der Werte, welche vorher mit bitweisem Oder manipuliert wurden.

Das ganze lässt sich auch Hexadezimal schreiben:
System.out.println(char1 == char2 || (char1 | 0x20) == (char2 | 0x20));
... und funktioniert auch mit XOR wie es @mihe7 gezeigt hat:
System.out.println(char1 == char2 || (char1 & ~0x20) == (char2 & ~0x20));
Es wird also nicht ein Großbuchstabe in einen Kleinbuchstaben umgewandelt, sondern das 16. Bit wird gelöscht. Es entsteht also ein Großbuchstabe.
 

Blender3D

Top Contributor
Kann ich da irgendwie machen ohne jetzt Stringmethoden außer .length und.charAt zu verwenden.?
Java:
        --
        Scanner input = new Scanner(System.in);
        char c;
        System.out.println("Beende die Schleife mit q oder Q");
        do {
            c = input.next().charAt(0);
        } while (letterToLowerCase(c) != 'q');
        System.out.println("Ende");

    }

    private static char letterToLowerCase(char c) {
        if (c < 65 || c > 90)
            return c;
        return (char) (c | 32);
    }
 

Kamil1

Gesperrter Benutzer
Java:
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while (true) {
            String l = input.nextLine();
            if (l.isBlank()) {
                break;
            }
            char c = l.charAt(0);

            if (c >= 'A' && c <= 'Z') {
                System.out.println("Das war ein großes: " + (char) (c + ('a' - 'A')));
            } else if (c >= 'a' && c <= 'z') {
                System.out.println("Das war ein kleines: " + (char) (c - ('a' - 'A')));
            } else {
                System.out.println("Das war gar kein Buchstabe! " + c);
            }
        }
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
G wie chars mit einer menge von chars vergleichen Java Basics - Anfänger-Themen 9
Bierhumpen chars vergleichen Java Basics - Anfänger-Themen 8
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
J erstes Vorkommen eines Chars aus einem String entfernen Java Basics - Anfänger-Themen 3
J erstes Vorkommen eines chars entfernen Java Basics - Anfänger-Themen 1
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
J String Methode chars() Java Basics - Anfänger-Themen 8
C Chars in einem String alphabetisch sortieren Java Basics - Anfänger-Themen 1
C Chars eines Strings mit for schleife rückwärts auslesen Java Basics - Anfänger-Themen 8
J Haben Chars wirklich keine KeyCodes? Java Basics - Anfänger-Themen 12
P Wie reagiere ich auf Strings mit zu vielen Chars ? Java Basics - Anfänger-Themen 6
J Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen Java Basics - Anfänger-Themen 10
B chars auf Zahlen überprüfen Java Basics - Anfänger-Themen 4
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
Developer_X Die Kunst der Alten Runen in Chars, leider nicht in String konvertierbar? Java Basics - Anfänger-Themen 28
X txt. mit Strings und Chars einlesen? Java Basics - Anfänger-Themen 3
H Zahlnwert eines chars Java Basics - Anfänger-Themen 5
J int-kette in chars umwandeln Java Basics - Anfänger-Themen 10
C Frage zu: String einlesen -> Array von Chars erhalten Java Basics - Anfänger-Themen 4
R Eingabe eines Chars mit Überprüfung Java Basics - Anfänger-Themen 3
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
J Array.list vergleichen Java Basics - Anfänger-Themen 1
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
W LocalDate vergleichen mit Equals? Java Basics - Anfänger-Themen 7
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
S Den Minimumberechnen 2 codes vergleichen Java Basics - Anfänger-Themen 4
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
districon Vergleichen von Objekten Java Basics - Anfänger-Themen 20
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
M Strings vergleichen Java Basics - Anfänger-Themen 10
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
O String mit Character vergleichen Java Basics - Anfänger-Themen 3
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
D Vergleichen von Strings Java Basics - Anfänger-Themen 6
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
R String vergleichen Java Basics - Anfänger-Themen 59
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
E Zahlen von einem Array mit zahlen von zweitem Array vergleichen Java Basics - Anfänger-Themen 27
A Suffix vergleichen Java Basics - Anfänger-Themen 2
L Erste Schritte Elemente zwei Schlangen vergleichen Java Basics - Anfänger-Themen 14
PaperHat Objekte in Array vergleichen Java Basics - Anfänger-Themen 9
F Input/Output 2 Textdateien mit einander vergleichen Java Basics - Anfänger-Themen 11
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
M String vergleichen Java Basics - Anfänger-Themen 5
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
S Array, Geburtsdatum, Vergleichen Java Basics - Anfänger-Themen 28
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12
L Variablen Versionsnummern vergleichen Java Basics - Anfänger-Themen 5
N Methoden int[]'s vergleichen Java Basics - Anfänger-Themen 4
N Methoden HashMap interne Werte miteinander vergleichen Java Basics - Anfänger-Themen 7
T JPasswordFielder vergleichen Java Basics - Anfänger-Themen 16
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
M Objekt mit Hashmap vergleichen Java Basics - Anfänger-Themen 22
S Werte in Liste mit Nachfolger vergleichen Java Basics - Anfänger-Themen 5
M Erste Schritte Mehrere eingaben in einer Line vergleichen (if equals...) Java Basics - Anfänger-Themen 6
J Zahlensequenz mit einer anderen Sequenz vergleichen Java Basics - Anfänger-Themen 6
P String größer kleiner gleich vergleichen Java Basics - Anfänger-Themen 6
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
J Methoden BinaryStrings vergleichen Java Basics - Anfänger-Themen 12
C arrey mit string vergleichen Java Basics - Anfänger-Themen 2
K Methoden Passwort Bestätigungsfeld mit Password vergleichen Java Basics - Anfänger-Themen 7
M Wortteile im String vergleichen Java Basics - Anfänger-Themen 2
L Rekursiv zwei Strings vergleichen Java Basics - Anfänger-Themen 3
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
C Große Zahlen vergleichen Java Basics - Anfänger-Themen 19
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
Korvinus Vergleichen von 2 csv-Dateien Java Basics - Anfänger-Themen 2
K Comparable - Objekte aus Array vergleichen und größtes auswählen Java Basics - Anfänger-Themen 1
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
JavaNewbie2.0 String vergleichen Java Basics - Anfänger-Themen 4
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben