kleines problem beim suchen in einem String

Status
Nicht offen für weitere Antworten.

fortune

Mitglied
Hallo,

ich muss eine Hausaufgabe machen wo ich eine Datei ( Inhalt ist Text) in ein Programm einlesen lassen soll.
Das einlesen und ausgeben ist kein Problem. Nun kommt dazu das ich jetz nach einem Wort in diesem String suchen soll.
ich hab schon alles probiert, in char arrays zerlegt, verglichen mit equals, equalsIgnoreCase compareTo und indexOf aber ich weiss jetzt nicht genau wie ich realisiere das das Programm das gefundene Wort in meinem schon erstellten font darstellt???

ich stelle mir das so vor das man erst die datei einliest, dann das wort sucht und der gesamte string neu ausgegeben wird bis auf das gesucht und gefundene wort das dann im Font f1 erscheint.

Kurz:
ich brauche einen suchalgo um INNERHALB eines Strings, nach einem STRING zu suchen. Und wie ich den gesuchten String in einem anderen Font f1 darstellen lasse.

MfG fortune
hoffe auf eine schnelle antwort
 

fortune

Mitglied
@Vayu: ich hab schon alles probiert, suchstring und dateistring in char arrays zerlegt,die verglichen mit equals, equalsIgnoreCase compareTo und indexOf aber zu keinem ergebnis

@Wildcard: in einer TextArea ta1

hab überlegt wie ich das jetzt noch mit nem String Tokenizer realisieren könnte
 

Ebenius

Top Contributor
Ich bin faul, daher nur HTML (und keine AttributeSets im StyledDocument).

Code:
final String searchString = "some text";
final String input = "abcsome textdef";

// safely create a regular expression by quoting
final String searchRegEx;
{
  String s = searchString;
  s = s.replaceAll("\\\\", "\\\\E\\\\\\\\\\\\Q");
  searchRegEx = "\\Q" + s + "\\E";
}

final String replacement =
      "<span style=\"font-size:24; "
            + "color:red; font-family:serif\">$0</span>";
final String output =
      "<html><body>"
            + input.replaceAll(searchRegEx, replacement)
            + "</body></html>";

textPane.setText(output);

Hilft das? :-D

Grüße, Ebenius
 

Ebenius

Top Contributor
Wildcard hat gesagt.:
EIne JTextArea ist für plain text, nicht für formattierten.
Das kam zu spät. Mit JTextPane kann man sowas wie oben machen. Wenn's auch nicht wirklich der schnellste / schönste Weg ist. Es macht zumindest wenig Arbeit und ist somit hausaufgabentauglich.

Ebenius
 

fortune

Mitglied
mein Problem ist nur das ich das ganze in AWT mache und somit manche Methoden nicht zur verfügung habe!
also es wäre schon schön wenn mir hier jemand mit einem algorhythmus oÄ weiterhelfen könnte!
 

Ebenius

Top Contributor
fortune hat gesagt.:
mein Problem ist nur das ich das ganze in AWT mache und somit manche Methoden nicht zur verfügung habe!

AWT mache ich meist nicht. Keine Ahnung, wie/ob man da irgendwas bunt in nem TextPane darstellen kann. Würde mich wundern. Darfst Du kein Swing benutzen?

fortune hat gesagt.:
also es wäre schon schön wenn mir hier jemand mit einem algorhythmus oÄ weiterhelfen könnte!

Algorhytmus zum suchen in einem String? String.indexOf(String) bzw. String.indexOf(String, int) zum weiter suchen?

Grüße, Ebenius
 

fortune

Mitglied
ja schön und gut,aber es funktioniert iwie nich
beispiel: der text in der datei ist "hallo ihr alle"
wenn ich nach hallo suche gibt er -1 zurück, bei ihr auch -1 und bei alle 3

quelltext sieht so aus:

int index=suchtext.indexOf(datei);
System.out.print(index);
 

Ebenius

Top Contributor
fortune hat gesagt.:
Code:
int index=suchtext.indexOf(datei);
System.out.print(index);

:applaus: Damit suchst Du nach dem Dateinamen im Suchtext. Guckst Du!

:idea: Schon mal darüber nachgedacht die Datei einzulesen und dann in deren Inhalt zu suchen?

Ebenius
 

fortune

Mitglied
Code:
if(e.getSource()==b2 || e.getSource()==tf2)  //suchen nach suchtext
        {
        suchtext=tf2.getText();
        String dat=new String();
        String su=new String();
 
		for(int i=0;i<s.length();i++)
		{
			for(int j=0 ; j<suchtext.length() ; j++)
			{
			suchw[j]=suchtext.charAt(j);
			textw[i]=s.charAt(i);
			dat=""+textw[i];
			su=""+suchw[i];
			}
			endsuch=endsuch.concat(su);
			enddat=enddat.concat(dat);
		}
		int index=enddat.indexOf(ednsuch);
		if(index==1)
                {
                     ta2.setText("Vorhanden");
                }


Soweit das programm, nun ist aber das problem das er deb index NIE zieht! er gibt immer -1 zurück.

was mache ich falsch!?

bitte um schnelle antwort!
danke im vorraus
 

Tankwart

Mitglied
Hi, ich kann zwar leider nichts zu deinem text ausgabe problem beitragen, aber zu deiner Mustersuche hät ich noch ein paar Tipps/Empfehlungen:

Java bietet eine Reihe nützlicher Funktionen um einen String innerhalb eines Strings zu finden.

1) Java stellt für Strings die funktion contains() zur Verfügung: deinString.contains(gesuchterString) liefert true wenn gesuchterString in deinString enthalten ist. False wenn nicht. Das Problem dabei ist dass Java auch treffer liefert wenn das gesuchte Muster eigentlich nur als teil in einem anderen Wort steckt. Bsp: Gesucht ist Garten, im text steht aber "nur" Gartenzwerg. Trotzdem erkennt Java das als Treffer wenn man nach "Garten" sucht. Man muss es also weiter eingrenzen z.B.: " Garten " (also erweitert um Leerzeichen wenn man das als alleinstehendes Wort in einem Text sucht).

Auf die Weise könntest du schnell und einfach auf das vorkommen deines gesuchten Strings testen.

2) Komplizierter als contains(), dafür präzisier anwendbar ist matches(). Dafür ist aber Wissen über Reguläre Ausfrücke notwendig. Wenn du dir die Mühe machen willst dich in Reguläre Ausfrücke einzuarbeiten (ist nicht sooo kompliziert) solltest du einfach mal nach Java und Regular Expressions googlen.

Dient ebenfalls zum testen ob das gesuchte vorkommt.

3) Um bei einem Treffer den gesuchten String heraus zu holen und zuersetzen/hervorheben/sonstiges hätte ich noch eine andere Idee:

Wenn ich dich richtig verstanden handelt es sich bei deinem String in dem suchst um einen "normalen" Text bei dem die einzelnen Wörtet durch Leerzeichen voneinander getrennt sind.

Mit deinString.split(" ") trennst du deinString in ein String-Array auf. Dabei trennt Java den String immer wenn das in den Hochkommas angegebene Zeichen vorkommt. Dieses Zeichen selbst wird dabei entfernt.
Wenn du also einen "normalen" Text hast und als Trennzeichen das Leerzeichen nimmst erhälst du ein String-Array in dem die einzelnen Wörter stehen. Jedoch musst du dich noch um eventuelle Satzzeichen kümmern.

Mit dem array könntest du auch wieder mittels durchlaufen und .equals() nach deinem gesuchten String fahnden bzw. später dann deine Ausgabe aufbauen.



Vielleicht kannst du damit ja was anfangen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Kleines Anzeige Problem(nur blanker Frame) AWT, Swing, JavaFX & SWT 22
J Kleines Layout Problem AWT, Swing, JavaFX & SWT 5
B Kleines JFrame Problem (oder doch größer?) AWT, Swing, JavaFX & SWT 2
D Kleines aber dummes Problem mit Turtle. AWT, Swing, JavaFX & SWT 4
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
J Kleines Helikopterspiel programmieren AWT, Swing, JavaFX & SWT 2
J Verbesserungsvorschläge?! Kleines AWT Programm AWT, Swing, JavaFX & SWT 4
T Kleines Infofenster einblenen lassen AWT, Swing, JavaFX & SWT 3
F Kleines Fenster am Bildschirmrand AWT, Swing, JavaFX & SWT 3
C Swing Kleines Programm mit SWING unter Verwendung von MVC AWT, Swing, JavaFX & SWT 5
L Kleines Lückenprogrämmchen AWT, Swing, JavaFX & SWT 3
C kleines Chatprogramm, probleme mit JTextArea AWT, Swing, JavaFX & SWT 9
R JTable Header - will links kleines icon hinzufuegen..? AWT, Swing, JavaFX & SWT 6
D Swing Ein kleines Formatierungsproblem AWT, Swing, JavaFX & SWT 9
T Ein kleines buntes Farbproblem AWT, Swing, JavaFX & SWT 7
V Thread als kleines splash AWT, Swing, JavaFX & SWT 13
C Mein erstes kleines Swing-Projekt - Probleme AWT, Swing, JavaFX & SWT 8
H Kleines SwingProgramm Frage AWT, Swing, JavaFX & SWT 14
H Kleines Malprogramm AWT, Swing, JavaFX & SWT 36
J kleines Zeichenprogramm AWT, Swing, JavaFX & SWT 12
P Warum braucht mein kleines Programm 20 MB Speicher? AWT, Swing, JavaFX & SWT 13
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
olfibits JavaFX Problem mit HTMLEditor AWT, Swing, JavaFX & SWT 0
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
N Swing Problem mit loop AWT, Swing, JavaFX & SWT 2
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
S JLabel setText() Problem AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Swing Splitpane Problem AWT, Swing, JavaFX & SWT 1
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
N JavaFX Stranges Problem mit der Autoscroll-Eigenschaft von Textareas AWT, Swing, JavaFX & SWT 0
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
J JavaFX Intersect Problem mit Shapes AWT, Swing, JavaFX & SWT 10
R JavaFX MediaPlayer AVI-Problem AWT, Swing, JavaFX & SWT 1
M Swing Problem mit ListCellRenderer AWT, Swing, JavaFX & SWT 7
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
J Problem mit Button darstellung AWT, Swing, JavaFX & SWT 23
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
M Swing AttributiveCellTableModel addRow() Problem AWT, Swing, JavaFX & SWT 1
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Grevak DisplayMode Problem seit Windows 10 AWT, Swing, JavaFX & SWT 2
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
B Swing Problem mit Bildpfad AWT, Swing, JavaFX & SWT 4
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
C AWT Problem mit Protokol Fenster AWT, Swing, JavaFX & SWT 0
M Swing pack() Problem mit Taskleiste AWT, Swing, JavaFX & SWT 4
N Swing Choice- Problem! AWT, Swing, JavaFX & SWT 8
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
P AWT Problem mit Platzierung (GridBagLayout) AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben