Methoden Umlaute in Java

claudisus

Neues Mitglied
Java:
public static String removeNonLetters(String sentence) {
        String removeNonLetters = "";
        for (int i = 0; i < sentence.length(); i++) {
            char character = sentence.charAt(i);
            if ((character >= 'a' && character <= 'z' || character >= 'A' && character <= 'Z')) {
                removeNonLetters = removeNonLetters + character;
            }
        }
        return removeNonLetters.replaceAll("\s", "");
}
Guten Tag. Ich habe eine Frage bezüglich Umlauten in Java. Die folgende Methode ist dazu gedacht, alle chars, die keine Buchstaben sind, aus einem String zu entfernen. Das klappt auch soweit ganz gut, nur habe ich durch Testfälle nun festgestellt, dass die Umlaute "äöü" in java keine Buchstaben sondern Zeichen sind, wodurch diese natürlich ungewollter Weise auch aus dem String entfernt werden. wie kann ich eine Ausnahme in meinen Code implementieren, sodass die Umlaute nicht entfernt werden?
 

mihe7

Top Contributor
dass die Umlaute "äöü" in java keine Buchstaben sondern Zeichen sind
Wie meinen?

Schau Dir mal die Methode Character.isLetter() an. Alternativ kannst Du selbstverständlich einfach prüfen, ob das Zeichen ein Umlaut ist (z. B. character == 'ö' bzw. character == '\u00f6', um im Quelltext keine Umlaute zu haben). Außerdem wäre auch ein regulärer Ausdruck möglich, dann verkürzt sich die Methode auf ein Minimum, der Rumpf der Methode besteht dann z. B. nur noch aus
Java:
return sentence.replaceAll("[^A-Za-zÄÖÜßäöü]", "");
 

DefconDev

Bekanntes Mitglied
Die ganzen Umlaute stehen doch in der Unicode Tabelle komplett woanders, deswegen funktioniert das nicht. Du betrachtest den Wertebereich innerhalb von a bis z und A bis Z. Und innerhalb dieser Bereiche existieren keine deutschen Umlaute.


Einfach mal schauen wo sich die befinden.
 

KonradN

Super-Moderator
Mitarbeiter
Wie immer: Man erkennt Tobias, fragt sich: Soll ich ihn direkt bannen? Und immer wieder denke ich mir: "Noch hatte er ja nicht seinen Moment - evtl. ist er ja jetzt erwachsen geworden". So langsam sollte ich es doch gelernt haben, dass dieses "An das Gute in Tobias glauben" schlichtweg falsch ist ...
 

mihe7

Top Contributor
Der Einwand von @WhosTobias@WhosWhat war doch nicht ganz unberechtigt: In Versalien oder Kapitälchen gesetzter Text könnte durchaus das große Eszett (ẞ) enthalten. Mag jetzt für den OP weniger relevant sein und die Transferleistung kann man dann schon voraussetzen, das Zeichen in den regulären Ausdruck aufzunehmen, aber den Hinweis als solches finde ich nicht schlecht: das ist etwas, was man normalerweise nicht auf dem Schirm hat.

Interessant in diesem Zusammenhang:
https://de.wikipedia.org/wiki/Gro%C3%9Fes_%C3%9F hat gesagt.:
Am 29. Juni 2017 wurde das Eszett als Versal-Variante (ẞ) der Rechtschreibung hinzugefügt, sodass es heute offiziell verwendet werden darf,[6] wobei „SS“ der Regelfall blieb. Dieses Verhältnis wurde 2024 umgedreht: „ẞ“ ist nun der Regelfall, „SS“ die Ausnahme.[7]

Das heißt für mich:
a) dass wir es künftig öfter mit dem großen Eszett zu tun bekommen könnten
b) dass eigentlich die Regeln in Java angepasst werden müssten. Character.toUpperCase('ß') müsste z. B. das große Eszett liefern und bei regulären Ausdrücken müsste ein "(?i)ß" auch das große Eszett matchen. (Nachtrag: hier muss ich mal die aktuelle Version testen ist immer noch "falsch")

Auch wusste ich nicht, dass man in Windows das große Eszett seit Windows 8 mittels Shift + AltGr + ß eintippen kann.
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Die Thematik ist ja noch bescheuerter als gedacht 🤣

https://community.snowflake.com/s/article/why-latin-small-sharp-s-upper-case-to-SS hat gesagt.:
From Unicode 5.1.0, there has been a change in the handling of the Latin character sharp S. The upper of LATIN SMALL LETTER SHARP S now corresponds to 'SS'. This is due to the usage of capital ß in German. German orthography uses the string "SS" as uppercase mapping for small sharp s. Thus, with the default Unicode casing operations, capital sharp s will lowercase to small sharp s, but not the reverse: small sharp s uppercases to "SS".
Das entspricht wohl dem Stand 2017. Jetzt ist es also (wieder) umgekehrt 🤣

Im aktuellen Unicode-Standard wird es auch noch so erklärt: https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-5/#G36881

Hello World: don't mess with German bureaucrazy (sic!)
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Aber wirklich. Da macht sich vermutlich kein Mensch Gedanken, was so eine kleine Änderung nach sich zieht.

Ich dachte zuerst auch: okay, das muss in Java angepasst werden... Dann: Moment, das ist doch ein allgemeines Thema, kann ja nicht sein, dass das einer so und der andere so macht. Okay, der Spaß ist in Unicode spezifiziert. Und jetzt geht's los: alles, was mit Unicode zu tun hat, muss entsprechend aktualisiert bzw. berücksichtigt werden. Und was hat das für Auswirkungen? Beispiel: Java an DB... lol.

Vermutlich wird das keine größere Folgen nach sich ziehen, aber ich möchte nicht wissen, in wie vielen Fällen das zumindest zu kleineren Problemen führt. Oder wenn ich an Statistiken denke, die vollautomatisch erzeugt werden. Ob das dann immer alles korrekt behandelt wird...
 

Marinek

Bekanntes Mitglied
Aber wirklich. Da macht sich vermutlich kein Mensch Gedanken, was so eine kleine Änderung nach sich zieht.

Doch klar :). Der IT Planungsrat hat eine entsprechende DIN vorbereitet welche Zeichen zwingend von Systemen der öffentlichen Verwaltung verarbeitet werden sollen. Das ist das große ß mit dabei.

Viele der Daten auf einem Personalausweis wurden in Großbuchstaben angegeben. Dabei auch das ß. Kommt in dem Bereich oft vor.

Aber: Hier in dem Thread nicht von Belang. Es gibt noch hundert andere Zeichen wie 🥸😏 oder ë oder ę , die man im europäischen Raum auch verarbeiten können muss.

Wie dem auch sei: Der User hat Umlaute auf „öäü“ eingeschränkt. Daher ist weder der Hinweis von dem Troll Tobi dahingehend notwendig noch berechtigt.
 

KonradN

Super-Moderator
Mitarbeiter
Der Einwand von @WhosTobias@WhosWhat war doch nicht ganz unberechtigt
Ja, aber das ist kein Grund für Entgleisungen. Wenn er da eine "akademische Diskussion" geführt hätte über das Thema, dann wäre es ja ok. Aber das ist halt einfach so nicht sinnvoll ...

Und dann über irgendwelche VPN Server einen neuen Account zu erstellen um noch ein Post zu machen ... Sorry, aber wenn man mich irgendwo nicht will, dann würde ich da nicht ständig neue Accounts erstellen ...
 

mihe7

Top Contributor
Ja, aber das ist kein Grund für Entgleisungen.
Oh, die Entgleisungen habe ich leider verpasst 😃

Sorry, aber wenn man mich irgendwo nicht will, dann würde ich da nicht ständig neue Accounts erstellen ...
Wohl wahr.

Es gibt noch hundert andere Zeichen wie 🥸😏 oder ë oder ę , die man im europäischen Raum auch verarbeiten können muss.
Sicher, das ist aber auch nicht das Problem. Es geht ja um die Änderungen: heute machen wir alles ohne großes Eszett, das ersetzen wir durch SS. Dann führen wir optional ein großes Eszett ein. D. h. ein kleines Eszett wird nach wie vor zu einem SS, ein großes Eszett wird dafür zu einem kleinen Eszett. Und jetzt gehen wir her und ändern die Prioritäten: großes Eszett "Pflicht", SS optional. Dass irgendwer mit den Daten dann noch vernünftig arbeiten können soll: 🤷‍♂️
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Java stellt unter Windows keine Umlaute dar Java Basics - Anfänger-Themen 9
M Umlaute in Java Applets? Java Basics - Anfänger-Themen 3
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
L Collator Umlaute Java Basics - Anfänger-Themen 5
O URL, UTF8, Umlaute Java Basics - Anfänger-Themen 15
S Base64 - Wie beziehe ich die Umlaute in die Speicherplatzrechnung mit ein? Java Basics - Anfänger-Themen 52
F Umlaute beim versenden von SMS Java Basics - Anfänger-Themen 10
krgewb Input/Output Umlaute in generierter HTML-Datei Java Basics - Anfänger-Themen 7
W JTextField-Objekt liest Umlaute mit falschen Zeichen ein Java Basics - Anfänger-Themen 5
A Text mit "Scanner" eingeben und Umlaute ersetzen Java Basics - Anfänger-Themen 7
W HTML Code, Umlaute werden nicht richtig dargestellt Java Basics - Anfänger-Themen 7
F Scanner + Stringbuilder geben leeren String aus wenn Umlaute enthalten sind Java Basics - Anfänger-Themen 29
S Codierung der Umlaute in Mails Java Basics - Anfänger-Themen 2
M Fileoutputstream: Linux Dateinamen mit Umlaute Java Basics - Anfänger-Themen 4
OnDemand Umlaute ausgeben Java Basics - Anfänger-Themen 7
V Umlaute in mysql, antscript, powershell utf-8 Java Basics - Anfänger-Themen 7
V Umlaute beim Parsen einer HTML Seite Java Basics - Anfänger-Themen 4
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
S Umlaute aus Dateisystem entfernen Java Basics - Anfänger-Themen 5
B InetAddress und umlaute Java Basics - Anfänger-Themen 2
S Umlaute in Swing-GUI Java Basics - Anfänger-Themen 8
D javadoc: wie werden Umlaute richtig dargestellt? Java Basics - Anfänger-Themen 3
B Input/Output Kodierte Umlaute aus Datei umwandeln? Java Basics - Anfänger-Themen 2
R Umlaute Mac -> Windows Java Basics - Anfänger-Themen 2
0 Umlaute Java Basics - Anfänger-Themen 4
R UTF-8 Webseite Umlaute lesen. Java Basics - Anfänger-Themen 2
F SQL Server aus Umlaute werden Fragezeichen Java Basics - Anfänger-Themen 4
P Umlaute in Datei ändern Java Basics - Anfänger-Themen 4
R Umlaute mit Switch-Case tauschen Java Basics - Anfänger-Themen 26
F Umlaute eines Strings entfernen (Verwendung von this?) Java Basics - Anfänger-Themen 2
S Eingabeaufforderung stellt Umlaute nicht dar Java Basics - Anfänger-Themen 10
A Umlaute darstellen Java Basics - Anfänger-Themen 4
O Umlaute bei der Erfassung Java Basics - Anfänger-Themen 12
P Umlaute und Byte Java Basics - Anfänger-Themen 2
J Umlaute Java Basics - Anfänger-Themen 3
R Umlaute in einer .properties-Datei Java Basics - Anfänger-Themen 1
S Umlaute und Sonderzeichen erkennen Java Basics - Anfänger-Themen 12
C umlaute mit DataOutputStream schreiben Java Basics - Anfänger-Themen 3
N Umlaute ersetzen Java Basics - Anfänger-Themen 1
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
G Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben