Sonderzeichen in einem String gezeichnen/bearbeiten

Z0!s

Mitglied
Hi,
folgendes problem:
Wenn ich einen String eingebe: zb.:
Java:
String nachricht = "  Cola macht     süchtig. ";

Der Text soll so formatiert werden, dass zum Schluss dasteht:

Cola macht !süchtig!

Sobald ein Wort Umlaute oder Zahlen enthält wird es mit Rufzeichen markiert.
Mehrfach Leerzeichen werden gekürzt (auf nur eines) und der Punkt zum Schluss wird entfernt.
Leerzeichen am anfang und am ende kommen ganz weg.

Wo ich keinen Plan habe: Wie löse ich das Problem mit den Rufzeichen und dem mehrfach Leerzeichen.
Leerzeichen am anfang und am ende kann ich mit trim() weggeben. Den Punkt mit replace und dann stehe ich an :-(
 

EdelStoff

Mitglied
Falls in dem Text die einzelnen Wörter immer mit Leerzeichen getrennt sind kannst du den Nachrichten String mit der split(" ") Methode in die einzelnen Wörter splitten und jedes Wort einzeln überprüfen.

Java:
String nachricht = "  Cola macht     süchtig. ";
nachricht = nachricht.replaceAll(".", "");
nachricht = nachricht.trim();	             
String[] woerter = nachricht.split(" "); // Nachricht splitten in einzelne Wörter
 

Nicer

Bekanntes Mitglied
Falls in dem Text die einzelnen Wörter immer mit Leerzeichen getrennt sind kannst du den Nachrichten String mit der split(" ") Methode in die einzelnen Wörter splitten und jedes Wort einzeln überprüfen.

Java:
String nachricht = "  Cola macht     süchtig. ";
nachricht = nachricht.replaceAll(".", "");
nachricht = nachricht.trim();	             
String[] woerter = nachricht.split(" "); // Nachricht splitten in einzelne Wörter

Die Elegante Methode :)

du könntest natürlich auch eine Schleife drüberrennen lassen , die jedes byte anschaut und dann entscheided ob es ersetzt werden soll oder nicht , und wenn ja mit welchem.
 

Wortraum

Bekanntes Mitglied
Wie wäre es mit so etwas? Natürlich kann man sich überlegen, ob es nicht klüger ist, das Ergebnis in einer Liste unterzubringen, um die Wörter weiterhin getrennt zu haben.
Java:
public static void main(String[] args) {
    String msg = "  Cola macht     süchtig. ";
    StringTokenizer st = new StringTokenizer(trim(msg));
    StringBuilder result = new StringBuilder();
    while (st.hasMoreTokens()) {
        String s = st.nextToken();
        if (hasSpecialChars(s)) {
            result.append("!" + s + "! ");
        } else {
            result.append(s + " ");
        }
    }
    result.deleteCharAt(result.length() - 1);
    System.out.println(result);
}

public static String trim(String s) {
    return s.replaceFirst(".\\s$", "");
}

public static boolean hasSpecialChars(String s) {
    return s.matches(".*[\\däöüÄÖÜ].*");
}

Die Elegante Methode :)
replaceAll(…) hat als Parameter einen regulären Ausdruck, und dort steht der Punkt für ein beliebiges Zeichen, kurz: Du machst aus nachricht eine leere Zeichenkette.
 
Zuletzt bearbeitet:

Z0!s

Mitglied
Ich hab am anfang in eine ganz andere Richtung gedacht. chararray usw.

Aber der Lösungsansatz is wirklich nicht schlecht.

Nur wenn ich mit replaceAll arbeite, dann ist der string[] woerter leer. :-(
Nur mit replace funktioniert es, keine ahnung wieso.

Das problem was jetzt ist:

Java:
		String nachricht = "  Cola macht     süchtig. ";
		nachricht = nachricht.replace(".", "");
		nachricht = nachricht.trim();                
		String[] woerter = nachricht.split(" "); // Nachricht splitten in einzelne Wörter
		for(int i= 0; i<woerter.length;i++){
		System.out.println(woerter[i]);
Ausgabe ist dann:

Cola
macht




süchtig


Irgendwie zusammenfügen und dann die rufzeichen einfügen und leere [] rauschlöschen...
Oder gibts schon beim splitten ne elegantere Lösung.

EDIT:
Sry ich habe diese antwort zeitgleich mit dem letzten beitrag von Wortraum erstellt.
Ich werde mir mal genau anschauen was der code da macht und am abend poste ich dann ob ich mich auskenne oder nicht. :)
 
Zuletzt bearbeitet:

Wortraum

Bekanntes Mitglied
Irgendwie zusammenfügen und dann die rufzeichen einfügen und leere [] rauschlöschen...Oder gibts schon beim splitten ne elegantere Lösung.
Lösungen gibt es viele, beispielsweise den StringTokenizer oder das vorherige Ersetzen aufeinanderfolgender Leerzeichen durch ein einzelnes. Auch so, wie Du es jetzt hast, kann man es machen, aber dann muß man eben noch alle leeren String filtern.

Mir ist übrigens eingefallen, daß in meinem Fall eine Ausnahme geworfen werden kann, da ich im letzten Schritt frech von StringBuilder das letzte Zeichen abschneide, ohne zu prüfen, ob er überhaupt Zeichen enthält.
 
Zuletzt bearbeitet:

Z0!s

Mitglied
Danke für die Lösungsidee.
Danke für die Lösung mit dem Stringtokenizer.

Was ich nicht verstehe: Wie findest du sowas? Ich meine ich hab als pdf so ein codebuch hab auf der java.sun seite alles über string gelesen (String (Java 2 Platform SE v1.4.2)) usw. und trotzdem nie was vom stringtokenizer gehört.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
S Sonderzeichen in einem String erkennen Java Basics - Anfänger-Themen 20
Juelin Sonderzeichen wie Euro (€) Java Basics - Anfänger-Themen 4
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
O Regex bei ReplaceAll ersetzt Wort und Sonderzeichen nicht. Java Basics - Anfänger-Themen 9
K Sonderzeichen einlesen Java Basics - Anfänger-Themen 3
C Wie erkennt man Sonderzeichen im String? Java Basics - Anfänger-Themen 26
J ireport Designer / CSV / Sonderzeichen was läuft falsch Java Basics - Anfänger-Themen 7
W Methoden Konvertierung von Sonderzeichen Java Basics - Anfänger-Themen 2
S Sonderzeichen '|' (u007C) mit Scanner einlesen Java Basics - Anfänger-Themen 1
T byte[] zu String mit Sonderzeichen Java Basics - Anfänger-Themen 2
J Datentypen Cast von int zu char führ zu 'Sonderzeichen' Java Basics - Anfänger-Themen 2
B Char-Vergleich Sonderzeichen Java Basics - Anfänger-Themen 6
X String Sonderzeichen/Zahlen erkennen Java Basics - Anfänger-Themen 3
E String soll mit Großbuchstaben anfangen und keine Sonderzeichen enthalten Java Basics - Anfänger-Themen 4
M Sonderzeichen werden nicht erkannt Java Basics - Anfänger-Themen 3
A Datentypen Sonderzeichen / Strings ersetzen Java Basics - Anfänger-Themen 3
K Sonderzeichen auf der Windowskonsole ausgeben Java Basics - Anfänger-Themen 8
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
F Sonderzeichen bei XML Serialisierung nicht konvertieren Java Basics - Anfänger-Themen 7
S String auf Sonderzeichen untersuchen Java Basics - Anfänger-Themen 6
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
M Sonderzeichen beim usedelimiter Java Basics - Anfänger-Themen 4
S Sonderzeichen "§" wird nicht erkannt - Stichwort Encoding! Java Basics - Anfänger-Themen 13
Benji0815 Sonderzeichen Java Basics - Anfänger-Themen 8
M Sonderzeichen in einer Datei auslesen Java Basics - Anfänger-Themen 3
T JOption Pane: Sonderzeichen verbieten? Java Basics - Anfänger-Themen 14
G String und Sonderzeichen Java Basics - Anfänger-Themen 6
T Sonderzeichen in label Java Basics - Anfänger-Themen 4
B Exception bei ImageIO wegen sonderzeichen Java Basics - Anfänger-Themen 11
Semox Umwandlung von Sonderzeichen in HTML-Datei mit Ausgabe Java Basics - Anfänger-Themen 7
D Sonderzeichen ä,ü,ö werden als ? ausgegeben Java Basics - Anfänger-Themen 3
T Sonderzeichen Java Basics - Anfänger-Themen 2
G Sonderzeichen automatisch ändern lassen Java Basics - Anfänger-Themen 23
A XML-Datei erzeugen+Sonderzeichen erlauben Java Basics - Anfänger-Themen 10
L Sonderzeichen automatisch escapen. Java Basics - Anfänger-Themen 7
U Sonderzeichen die zweite Java Basics - Anfänger-Themen 16
H GPS über ser. Schnittst. liefert teilweise Sonderzeichen Java Basics - Anfänger-Themen 3
M RandomAccessFile schreibt Sonderzeichen vor String Java Basics - Anfänger-Themen 2
B String mit Sonderzeichen wie " oder = überprüfen Java Basics - Anfänger-Themen 2
H Datei mit Sonderzeichen Java Basics - Anfänger-Themen 8
G Newline Sonderzeichen aus File entfernen u als String speic? Java Basics - Anfänger-Themen 3
T Robot-Problem mit Sonderzeichen Java Basics - Anfänger-Themen 2
M java sonderzeichen filtern Java Basics - Anfänger-Themen 3
M Konvertierung v. Strings (evtl. mit Sonderzeichen) nach HTML Java Basics - Anfänger-Themen 8
M Char Array mit Sonderzeichen in String umwandeln Java Basics - Anfänger-Themen 21
S Umlaute und Sonderzeichen erkennen Java Basics - Anfänger-Themen 12
S HTML Sonderzeichen in Unicode wandeln Java Basics - Anfänger-Themen 5
C Sonderzeichen (ä, ö, ü) in JTextArea Java Basics - Anfänger-Themen 9
J Sonderzeichen Java Basics - Anfänger-Themen 2
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
S HashMap mehrere Keys zu einem Value Java Basics - Anfänger-Themen 3
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Elemente in einem Array Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
Igig1 Wie lasse ich dir Werte in einem Array zusammenrücken? Java Basics - Anfänger-Themen 4
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben