text durchsuchen -> satzzeichen entfernen

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
hallo,

das ist etwas schwer zu erklären, ich will euch jetzt auch nicht mit meinem trash code langweilen.

mein problem: ich zähle wörter in einem text, und kriege es irgendwie nicht hin, satzzeichen wegzuschneiden.

ich habe es schon versucht, mittels (ein beispiel für ein wort dass einen satz beendet, also mit "." aufhört) :

Code:
if(word.contains("."){
   word = word.substring(0,word.length()-1);
}

wenn ich mir jetzt das ergebnis nach diesem schritt ausgeben lasse, wurde tatsächlich aus zB "hallo." ein "hallo"
gemacht.

ABER:

wenn ich nun ein "hallo" in dem text mittels equals() vergleiche mit einem ursprünglichen "hallo." aus dem mit
der oben genannten bearbeitung ein "hallo" gemacht habe, kommt FALSE heraus..

also irgendwas passt da nicht. wieso?

danke
 
S

SlaterB

Gast
> wieso?

weil du keinen Code postest..

selbstverständlich funktioniert es, anderenfalls ist noch ein Leerzeichen drin oder ein beliebiger anderer Fehler

wann immer du glaubst, zwei gleiche Strings zu haben, deren equals false ergibt,
ist das kinderleicht nachzuprüfen:
Länge der beiden Strings vergleichen/ ausgeben sowie jeden char als ASCII-Code in einer Schleife prüfen

-------

> if(word.contains("."){

gefährliche Sache, der Punkt muss ja nicht am Ende des Strings sein..
(gibt auch string.endsWith())
 

hdi

Top Contributor
danke erstmal für den tipp mit endsWith(), habe das nun ersetzt!

Ich möchte halt nicht nur euch zumüllen mit meinem Code, sondern versuche erst selber herauszufinden
woran es liegt um euch dann nur diesen Teil zu präsentieren.

Aber scheinbar irre ich mich, dann poste ich jetzt doch meinen Code. Wie ich sagte, ist es etwas chaotisch.
Also es sieht so aus:

Code:
            fr = new BufferedReader(new FileReader("C:/analyze.txt"));
            while ((line = fr.readLine()) != null) {

                laca = line.toCharArray();
                int j=0;
                for (int i = 0; i < laca.length; i++) {
                    if (laca[i] == ' ' || laca[i] == '!' || laca[i] == '?' || laca[i] == '.' ||
                            laca[i] == ',' || laca[i] == '-' || laca[i] == '\"' || laca[i] == '\'') {  
   
                        // Es wurde ein Satzzeichen im String gefunden, d.h. alles von Anfang bis zu dieser Stelle
                        // ist ein Wort. Nun wird noch das Satzzeichen entfernt und das Wort gespeichert:

                        word = line.substring(i-j, i+1); 

                        // wort bearbeiten (punkte, komma etc wegschneiden)
                        if(word.endsWith(".") || word.endsWith("!") ||  word.endsWith("?") ||
                          word.endsWith(",")  ||  word.endsWith("-")  ||  word.endsWith("\"") ||  word.endsWith("\'")){
                            
                            word = word.substring(0,word.length()-1);
                        }

                       // hier wird jetzt etwas mit dem wort gemacht, ich füge es zB in eine liste ein und fertig

                        // nachdem dieses Wort gefunden wurde, wird j wieder 0 gesetzt um für den weiteren Verlauf
                        // des Line-Strings wieder zu wissen, wo das neue Wort begonnen hat:
                        j = 0;
                        }
                    }
                    else{
                       // wird hochgezählt, solange ein Wort nicht abgeschlossen ist, um zu wissen wo das Wort
                       // begonnen hat bzw. wie lang es ist (um den richtigen substring zu finden!)
                        j++;
                    }
                }
                
            }

So, also habe alles kommentiert, ich hoffe man versteht es.
Ich speichere ja alle Wörter in eine Liste, die ich mir am Ende ausdrucke. Dort stehen dann alle Wörter
und daneben die Anzahl ihrer Vorkommen (diesen Teil hab ich jetzt hier weggelassen).

EDIT
Ich habe jetzt rumprobiert, und festgestellt, dass bei dem einen hallo wo ein punkt dran war, kein leerzeichen
mehr zum string gehört, was bei allen anderen string der fall ist! Deshalb hänge ich in dem fall einfach
ein " " an und damit ist das also GELÖST!

Aber es gibt weiterhin ein Problem:

Das letzte Wort wird nie bearbeitet, ich denke es liegt daran dass mir oben in der Abfrage:

Code:
   if (laca[i] == ' ' || laca[i] == '!' || laca[i] == '?' || laca[i] == '.' ||
                            laca[i] == ',' || laca[i] == '-' || laca[i] == '\"' || laca[i] == '\'') {

noch das END OF FILE fehlt, also er erkennt beim letzten wort keinerlei abschlusszeichen und speicher somit
kein wort. Aber wie kann ich das überrpüfen, gibts da auch ein Terminalsymbol dafür als Char?
 

Schandro

Top Contributor
String newString = oldString.replace(".","");
ersetzt alle Punkte durch einen leeren String...
ist denke ich mal eine viel bessere lösung als die, die du gemacht hast. Bei dir werden sie schleißlich nur enfernt, wenn sie am schluss stehen
 

hdi

Top Contributor
Also das mit den Punkten funktioniert schon soweit, auch "..." etc werden rausgefilert.

Ich hab jetzt nur noch 2 Probleme:

1) Was ist das Char-Escape Zeichen für End Of File, bzw. wie kann ich es anders lösen dass auch das letzte Wort noch mitgenommen wird?

2) Ich habe eigentlich Zeichen wie " und ' herausgenommen, allerdings ist es so dass im Text
andere Versionen davon vorkommen können.
zB:

WORLD’S

Dieses Apostroph da kann man in im Editor nicht schreiben, man kann ´ schreiben, aber das sieht ja
anders aus und es funktioniert auch nicht. Dann zB noch so kursive Dinge wie ”, das geht auch nicht nur "

In der ASCII Tabelle finde ich diese Zeichen irgendwie auch nicht.. Also wie kann ich die rausfiltern??

danke
 
S

SlaterB

Gast
letztes Wort innerhalb einer Zeile:
prüfe i == laca.length-1

letze Zeile:
lies alle Zeilen vorher in eine Liste ein oder zumindest immer eine Zeile im Vorraus, damit du weißt, wann die letzte erreicht ist
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Text via RegEx durchsuchen und teile ersetzten Allgemeine Java-Themen 5
C EML Email Text in String wandeln Allgemeine Java-Themen 9
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
M Thymeleaf th value und th text Allgemeine Java-Themen 1
_user_q Eingegebenen Text Zeile für Zeile ausgeben lassen Allgemeine Java-Themen 11
_user_q Eingegebenen Text wiederholt schreiben lassen Allgemeine Java-Themen 9
G Darstellung von Text auf MapContext von GeoTools Allgemeine Java-Themen 2
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
izoards Bestimmter Text aus PDF extrahieren Allgemeine Java-Themen 3
B Scanner erkennt keinen Text in Textdatei, obwohl welcher drinsteht Allgemeine Java-Themen 10
K HTMLEditor HTML Text in Rich Text umwandeln Allgemeine Java-Themen 14
kodela JDialog zeigt Text nicht an Allgemeine Java-Themen 5
L Text filtern Allgemeine Java-Themen 1
Bluedaishi TEXT Kodierung Allgemeine Java-Themen 3
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
S Ini Text aus String parsen Allgemeine Java-Themen 1
M itext - Button der Text in Zwischenablage stellt Allgemeine Java-Themen 0
E CSV mit Text und Binärdaten auslesen Allgemeine Java-Themen 7
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
I Text suchen und ersetzen im Word Dokument Allgemeine Java-Themen 3
windl Text mining / deep learning Allgemeine Java-Themen 0
I Text aus Input-Box entnehmen und zuweisen Allgemeine Java-Themen 1
KeexZDeveoper Text Mining Allgemeine Java-Themen 3
L Input/Output Wie kann man in der Konsole einen Text farbig ausgeben z.b in grün Allgemeine Java-Themen 6
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
A Datenexport (Text und Draw) Allgemeine Java-Themen 1
L Text von txt auf JTextArea Allgemeine Java-Themen 4
N Das Ende von bestimmten zeilen in text datei ändern und speichern Allgemeine Java-Themen 3
A 2D-Grafik Text in ein Bild schreiben Allgemeine Java-Themen 11
T Textarea text wird immer überschrieben Allgemeine Java-Themen 4
I Apache POI Word Text einfügen Allgemeine Java-Themen 26
T itext: text in ein textfeld hinzufügen Allgemeine Java-Themen 2
B Farbiger Text in der Konsole Allgemeine Java-Themen 1
K Pdf mit dynamischem Text mit iText Allgemeine Java-Themen 0
D Text Analyzer Allgemeine Java-Themen 2
RalleYTN Audiodatein(.ogg/.wav) in Text konvertieren Allgemeine Java-Themen 0
L Nach Button drücken den Text festspeichern Allgemeine Java-Themen 9
X Löschen von einer Zeile in einer Text Datei. Klappt nicht. Allgemeine Java-Themen 4
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
S Text in mehreren Sprachen korrekt darstellen? Wie waehle ich die Fonts aus..? Allgemeine Java-Themen 0
J Java - Zeile aus Text datei löschen Allgemeine Java-Themen 13
M Text in erstelltes Excelfile schreiben Allgemeine Java-Themen 6
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
P HTML Text bearbeiten Allgemeine Java-Themen 1
B JFrame Text Ausgabe Allgemeine Java-Themen 7
G Makierter Text in Arbeitsspeicher Allgemeine Java-Themen 2
B Text in die Mitte der Konsole schreiben. Allgemeine Java-Themen 1
M Variablen Variablen in Text einbinden Allgemeine Java-Themen 5
P iText Text zentrieren Allgemeine Java-Themen 3
J Verschlüsselung von Text? Allgemeine Java-Themen 2
M Text datei in java jar datei einbinden Allgemeine Java-Themen 4
S Swing Text in eine JTextArea schreiben Allgemeine Java-Themen 17
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
S Robuste Methode um Text von HTML code zu extrahieren..? Allgemeine Java-Themen 6
achillesat Rich Text Editor Allgemeine Java-Themen 2
M CMD-Text anzeigen Allgemeine Java-Themen 10
G Text Mining Allgemeine Java-Themen 7
B Text auf Standarddrucker drucken Allgemeine Java-Themen 3
S Library fuer Internet-Text-Daten-Quellen..? Allgemeine Java-Themen 8
nrg Find and replace Text docx Allgemeine Java-Themen 6
M Ein bestimmtes Wort in einem Text zählen (String in String) Allgemeine Java-Themen 9
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
M Funktion gesucht: Text vektorisieren Allgemeine Java-Themen 20
D Wort in Text mit >100.000 Wörter finden Allgemeine Java-Themen 7
B Text wird nicht richtig angezeigt Allgemeine Java-Themen 9
Q Text Datei einlesen Allgemeine Java-Themen 27
N .doc text ändern Allgemeine Java-Themen 12
R Komponente hat nicht die gesetzten Eingeschaften (Text, Farbe) Allgemeine Java-Themen 3
M NOA an den Source Text des Dokumentes kommen Allgemeine Java-Themen 7
O Text mit Wildcard gegen regulären Ausdruck prüfen Allgemeine Java-Themen 3
A Umwandlung von Text/Zeichen in Polynome Allgemeine Java-Themen 8
Y Eclipse ppt Folie erzeugen + text plazieren Allgemeine Java-Themen 4
cedi Eingegebenen Text in der Konsole nicht sichtbar machen oder nur in Sternchen anzeigen Allgemeine Java-Themen 2
D markierten Text kopieren Allgemeine Java-Themen 2
P Doppeltverkettete Listen + Text Allgemeine Java-Themen 5
DEvent embedded Object Database in Text Format Allgemeine Java-Themen 5
C Datei als ASCII text einlesen ? Allgemeine Java-Themen 16
R Texterkennung - Text aus einem/r Bild/Grafik auslesen Allgemeine Java-Themen 2
M String in Html Text umwandeln Allgemeine Java-Themen 2
T eingefügter Text nach dem rendern spiegelverkehrt Allgemeine Java-Themen 2
lumo encoding einer text-datei Allgemeine Java-Themen 2
E Text ans Ende einer Textdatei anfügen Allgemeine Java-Themen 2
E JTextArea / JEditorPane + Text formatieren Allgemeine Java-Themen 3
R Java Text anderer Schriftart einlesen Allgemeine Java-Themen 2
A AES Key aus Text erzeugen Allgemeine Java-Themen 2
S Koordinaten aus einem Text filtern Allgemeine Java-Themen 11
turmaline Text aus Web-Seiten auslesen Allgemeine Java-Themen 1
MQue Graphics2D Text Allgemeine Java-Themen 2
U Text verschmelzen Allgemeine Java-Themen 8
martin82 Java-Code aus Text-Datei parsen Allgemeine Java-Themen 3
W Text curser auswählen für Paste Allgemeine Java-Themen 15
G HTML-Datei einlesen, Plain Text in Textfile speichern Allgemeine Java-Themen 4
S Bestes Text file encoding..? Allgemeine Java-Themen 36
B UTF-8 Text Allgemeine Java-Themen 3
H Passwortgschützter Text Allgemeine Java-Themen 13
C IReport Feldberechnen und als Text ausgeben Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben