Suche in Text und Markierung

hoppel61

Mitglied
Hallo zusammen,
ich habe folgendes Problem:
Es wird ein Text eingegeben. In der nächsten Zeile werden Zeichen eingegeben.
Es soll das erste Zeichen genommen werden und der gesamte Text soll darauf geprüft werden, wo das Zeichen enthalten ist. Dann soll der gesamte Text für jedes Zeichen ausgegeben werden und jedes Vorkommen soll unterstricken sein.
Also zum Beispiel:
Text: ich esse gerne brot, ente ess ich lieber
Zeichen: e (und) s
Ausgabe1: ich EssE gErnE brot, EntE Ess ich liEber
Ausgabe2: ich eSSe gerne brot, ente eSS ich lieber
ich hoffe, ich habe alle e und s erwischt :) Also für jedes Zeichen einzeln kann ich das. Aber dass dann in die konsole eingegeben werden soll, nach was gesucht wird, ist mir zu hoch.
bisher habe ich das

Java:
import java.util.Scanner;
class Finder {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.print("Text : ");
String text=in.nextLine();
System.out.print("Zeichen : ");
String such=in.nextLine();
int anz = such.length;
String[] zeichen=such.split(" ");
String[] zerl=text.split("");
while (anz>0) {


char[] buch = text.toCharArray();
String[] verg = new String[c.length];

for(int i = 0; i < c.length; i++) {
String vergl=verg[i] = String.valueOf(buch[i]);
if (vergl.contains(buch[])) {
System.out.print("^");
} else {System.out.print(" ");
}

anz=anz-1;
}}}}

Spätestens ab char[] buch verliere ich den überblick. Könnt ihr mir da bitte helfen?
Bisher soll das Programm erst mal nur ein " " ausgeben, falls der jeweils betrachtete buchstabe nicht die vorgabe (also zb e) ist, und wenn der buchstabe e ist dann ein "^".
also zb für:
ich esse gerne ente
und wenn auf "e" geprüft wird, dann wäre die ausgabe (- soll leerzeichen sein):
----^--^--^--^-^--^
Ich habe nicht viel Ahnung vom Programmieren. Teile des Quelltextes hab ich mehr oder weniger aus dem Internet, ich verstehe also nicht wirklich, was da passiert.
Wenn mir jmd helfen könnte, wäre das super ;)
LG
 

hoppel61

Mitglied
hi klaus,
meinst du was ''kein Problem ist'' oder was ''dein Problem ist''?
also wenn du einen tipp für mich in sachen ausdruck, grammatik oder sonst was hast, bin ich dir auch dankbar ;)
ohne antworten, kann ich mein problem nicht genauer erklären, da ich dann nicht weiß, was ihr nicht versteht. und falls du ''kein problem'' meintest, dann versteh ich leider nicht, was du mir sagen willst.
LG
 

VfL_Freak

Top Contributor
oops ... :cool:
DEIN Problem natürlich !!

Du beschreibst zwar was Du möchstest, aber nicht WO und WAS nicht funktioniert !!
Kommen Fehlermeldungen? Wenn JA, welche?
Macht der Code nicht das, was er soll? Wenn JA, was genau?
usw.

Gruß Klaus
 
X

Xyz1

Gast
Ich versuch's mal, die nicht Java 8-Feature-Lösung sähe so aus:
Java:
        String s1 = "Hallo Allwissende!";
        String s2 = "all";
        String s3 = "";
        for (int i = 0; i < s1.length(); i++) {
            if (i + s2.length() <= s1.length() && s1.substring(i, i + s2.length()).equalsIgnoreCase(s2)) {
                s3 += s2.toUpperCase();
                i += s2.length() - 1;
            } else {
                s3 += s1.charAt(i);
            }
        }
        System.out.println("s3 = " + s3);

Anstatt .equalsIgnoreCase() auch einfach nur .equals() ... Später erstelle ich noch einen Flowchart dazu.
 

hoppel61

Mitglied
hi klaus,
also was funktioniert nicht? ich weiß nicht, was da nicht funktioniert :( ich weiß nicht mal genau, was da überhaupt passiert.... also beim kompilieren gibt es fehlermeldungen. die besagen aber alle nur, dass ";" fehlt oder "(". es gibt bloß zwei ausnahmen, die was anderes wollen:
der eine fehler besagt, dass man den [] string nicht in einen () string umwandeln kann (letztes if), der andere besagt, dass er ein problem nach dem absatz mit char... hat. dort hat er probleme, das richtig zuzuweisen. es wird zwar angezeigt, dass in der bedingung etwas nicht stimmt, aber das liegt am char.
ich weiß aber leider nicht, was da in meinem beispiel überhaupt passiert.
eigentlich sollte er zwei strings einlesen, diese in alle zeichen zerteilen und dann für jedes zeichen des zweiten strings den gesamten ersten string auf vorkommen prüfen. ich bezweifle aber, dass ich das auch annähernd programmiert habe...
lg
 

hoppel61

Mitglied
hallo wissender,
ich habe keine ahnung, was dein beispiel machen soll, aber ich probier das mal aus.
klappt das auch, wenn man die strings von der konsole einlesen will?
lg
 

hoppel61

Mitglied
nochmal was zum allwissenden,
also wenn ich das richtig verstehe, ersetzt dein programm alle ''all'' gegen ''ALL''. ist das korrekt soweit?
das hilft mir schon mal sehr viel weiter, danke :)
jetzt hätte ich bloß noch zwei fragen zum ersetzen:
1. ist es auch irgendwie möglich text auf der konsole auszugeben, der immer dieselbe farbe hat wie der hintergrund, oder ist es überhaupt möglich dort text auszugeben, der zb schwarz ist?
2. wie schafft man es, dass das programm den text, den es ausgibt immer nur zeilenweise ausgibt und danach eine zeile was anderes ausgibt und danach wieder den text ab der stelle wo es aufgehört hat, ausgibt.
Ich meine das so:
das programm soll folgendes machen:
Eingabe: In diesem Beispiel werden die Buchstaben e und i gesucht.
Eingabe: ei
Ausgabe: In diesem Beispiel werden die Buchstaben e und i gesucht.
Ausgabe: ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
Ausgabe: In diesem Beispiel werden die Buchstaben e und i gesucht.
Ausgabe: ^ ^ ^ ^ ^ ^

Aber wenn der Text mehr als ein 1-zeiler ist, dann müsste ja immer unter der jeweiligen Zeile die Markierung sein:
Eingabe: Mir fällt kein vernünftiger Text ein, aber in diesem Beispiel sollen alle vorkommenden s unterstrichen werden.
Eingabe: s
Ausgabe: Mir fällt kein vernünftiger Text ein, aber in diesem Beispiel sollen alle vorkommenden s
Ausgabe: ^ ^ ^ ^
Ausgabe: unterstrichen werden.
Ausgabe: ^

Oder gibt es irgendetwas, das schon markieren kann?
Wie zb macht der java-compiler das, dass der die fehler unterstreicht?
LG und schon mal danke für die hilfe
 

hoppel61

Mitglied
das ist jetzt meine methode:
Java:
import java.util.Scanner;
class Finder {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.print("Text : ");
        String text = in.nextLine();
        System.out.print("Zeichen : ");
        String such=in.nextLine();
        String[] tex=text.split(" ");
        String[] zerl=text.split("");
        String[] zeichen=such.split("");
        for (int n=0; n<zeichen.length; n++) {
            System.out.println(text);
            int zaehl=0;
            String buch = zeichen[n];
            for(int i = 0; i < zerl.length; i++) {
                String vergl = zerl[i];
                if (vergl.contains(buch)) {
                    zaehl=zaehl+1;
                    System.out.print("^");
                } else {System.out.print(" ");
                }
            }System.out.println(); 
            System.out.println("Das Zeichen " +buch+" kommt " +zaehl+" mal vor!");
       
}}}
funktioniert nur wenn die eingabe in der konsole maximal eine zeile lang ist
lg
 

kaporalix

Mitglied
was macht dieser Code:
du gibst die gewünschte Buchstabe ein (z.B: e)
den gewünschten Satz( z.B: ich esse gerne brot, ente ess ich lieber )
hier werden alle e's durch ^ ersetzt;
ausgabe: ich ^ss^ g^rn^ brot, ^nt^ ^ss ich li^b^r
dann wirst du aufgefordert einen neues satz einzugeben, wenn du nicht willst, kannst du den vorgang beenden, in dem du auf die tastenkombination Strg+z (Strg Z) drückst, smit beendet sich das program. hoffe es hilft
Java:
import java.util.Scanner;

public class ZeichenInText {
   
   
    public static void main(String[] args) {
   
        Scanner input = new Scanner(System.in);
       
        System.out.println("Zeichen: ");
        String buchstabe = input.next();
       
        System.out.println("Satz:");
        while(input.hasNext()) { //warte auf weitere Eingabe bis der user Strg+Z drückt -> beenden
            String eingabe = input.nextLine();
            System.out.printf("Ausgabe: %s", changeChar(eingabe, buchstabe.charAt(0)));
            System.out.println();
        }
       
       
    }
   
    //ändert die gewünschte buchstabe in ^
    public static String changeChar(String satz, char buchstabe) {
        for(int i = 0; i < satz.length(); i++) {
            if(satz.charAt(i) == buchstabe) { // prüfe ob die Buchstabe in der Satz = buchstabe
                satz = satz.replace(satz.charAt(i), '^'); // wenn ja, ändere dies zu ^
            }
        }
        return satz;
    }

}
 
X

Xyz1

Gast
Oh, da ist ja jetzt einiges Zusammengekommen, eine völlig neue Anforderung auch.

Ich schlage mal einen Behelf vor, du kopierst deinen Text in Netbeans, suchst etwas mit Strg+F, und er listet dir jedes Vorkommen mit Zeile und Spalte auf, highlightet und unterstreicht es. Auch case insensitive und RegEx möglich.

Sonst: Wie lange bist du schon dabei?
Ich nehme an, Windows. <-> Die Textfarbe kann nicht geändert werden.
.contains() ist auch praktisch.

Versuch:
Java:
        String s1 = "allall Hallo Allwissende! allall";
        String s2 = "all";
        String s3 = new String(s1);
        int index1 = 0;
        int index2 = s3.toLowerCase().indexOf(s2, index1);
        while (index2 != -1) {
            s3 = s3.substring(0, index2) + s2.toUpperCase() + s3.substring(index2 + s2.length());
            index1 = index2 + s2.length();
            index2 = s3.toLowerCase().indexOf(s2, index1);
        }
        System.out.println("s1 = " + s1);
        System.out.println("s2 = " + s2);
        System.out.println("s3 = " + s3);

Bearbeitung: Teile das in mehrere Unterprogramme auf ....
 

hoppel61

Mitglied
sry dass ich erst so spät antworte. ich habe irgendwie ne mischung von beidem gemacht...glaub ich
es war auf jeden fall richtig ;)
vielen dank euch allen, habt mir sehr geholfen
lg
 
X

Xyz1

Gast
Also in #6 bin ich zeichenweise da durch gegangen - und den neuen String zusammengesetz.
In #13 habe ich alle Vorkommen im zusammengesetzten String durch großgeschriebene ersetzt.
Beides, #6 und #13, ist nicht das Gelbe vom Ei! Ich denke, dein Ergebnis ist naheliegender. :rolleyes:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Suche in einem Text Java Basics - Anfänger-Themen 17
B Script Text Zeichen Suche funktioniert nicht Java Basics - Anfänger-Themen 7
M Algorithmus zur Suche eines Wortes in einem Text Java Basics - Anfänger-Themen 7
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
M Suche Resteasy Example Java Basics - Anfänger-Themen 24
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
M binäre Suche im Intervall Java Basics - Anfänger-Themen 6
M binäre Suche Java Basics - Anfänger-Themen 4
H Suche Java3D 32 bit Java Basics - Anfänger-Themen 20
amelie123456 Lineare Suche / Binäre Suche Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
K Warum ist die binäre Suche bei der verketteten Liste nicht so effektiv? Java Basics - Anfänger-Themen 3
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
RudiRüssel Binäre Suche, unsortiert, lokales Maximum Java Basics - Anfänger-Themen 15
Y Suche von Studenten anhand Ihrer Eigenschaften. Java Basics - Anfänger-Themen 1
F Auf der Suche in π Java Basics - Anfänger-Themen 13
C Suche Nachhilfe in Java Java Basics - Anfänger-Themen 5
T Binärbaum-Suche Implementation Java Basics - Anfänger-Themen 6
A suche dringend Hilfe!! Java Basics - Anfänger-Themen 6
N Operatoren Schreibtischtest der Reihen-Suche nach Aufschluss in die Basics Java Basics - Anfänger-Themen 1
B Suche free SVN Hosting Java Basics - Anfänger-Themen 12
S Binäre-Suche Algorithmus Java Basics - Anfänger-Themen 1
S Java Lineare-Suche Zeitmessung Java Basics - Anfänger-Themen 5
S Java Lineare Suche Java Basics - Anfänger-Themen 1
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
E Die richtige Suche in der API Java Basics - Anfänger-Themen 1
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
E Weg-Suche-Problem rekursiv Java Basics - Anfänger-Themen 12
B Suche Programme mit Fehlern Java Basics - Anfänger-Themen 9
jaleda100 Component für Suche Java Basics - Anfänger-Themen 4
L Suche ein sampel Projekt Java Basics - Anfänger-Themen 2
P Suche Aufwandsgenerator (o-notation) Java Basics - Anfänger-Themen 1
S Suche aktuelles 2D Grafik Tutorial Java Basics - Anfänger-Themen 5
M Suche hilfe bei Array Java Basics - Anfänger-Themen 4
L Binäre Suche mit Comparator Java Basics - Anfänger-Themen 5
J Methoden Suche effiziente Implementierung für eine Methode Java Basics - Anfänger-Themen 3
D Ich suche nach einer Möglickeit den Webseiten Inhalt per Java zu analysieren Automatisch Java Basics - Anfänger-Themen 3
B String: suche nach Wörter und in List<String> speichern Java Basics - Anfänger-Themen 3
D Erste Schritte Suche Quelltext Java Basics - Anfänger-Themen 7
M Rekursion Minimums Suche Java Basics - Anfänger-Themen 12
J Suche Hilfestellung Java Basics - Anfänger-Themen 10
G Erste Schritte Suche Java Programmierer für kleines Projekt Java Basics - Anfänger-Themen 1
J Suche die Emailadresse Java Basics - Anfänger-Themen 6
H Erste Schritte Binäre Suche Java Basics - Anfänger-Themen 37
J Suche simples Beispiel für die EOFException Java Basics - Anfänger-Themen 1
H Rekursion Binäre Suche Java Basics - Anfänger-Themen 2
L Binäre Suche Java Basics - Anfänger-Themen 2
L Linerae Suche in einem sortierten Array Java Basics - Anfänger-Themen 2
N Array, lineare Suche, binäre Suche, Programm bleibt unerwartet stehen... Java Basics - Anfänger-Themen 6
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
B Binäre Suche - Junit Test Java Basics - Anfänger-Themen 6
L Einfache Lineare Suche Java Basics - Anfänger-Themen 7
J Binäre Suche eines Array Java Basics - Anfänger-Themen 5
M Methoden Binäre Suche als rekursive Variante Java Basics - Anfänger-Themen 5
D Suche nach der Anzahl von Zonen zwischen zwei Punkten Java Basics - Anfänger-Themen 2
M Benutzerdefinierte Suche in einem String - outofbounds Java Basics - Anfänger-Themen 7
X Best Practice SUCHE ein gutes Javabuch! (kein Anfang von 0) Java Basics - Anfänger-Themen 5
B Binäre Suche in einem String Array Java Basics - Anfänger-Themen 10
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
M Rekursive Suche in einem Feld Java Basics - Anfänger-Themen 11
S Suche richtigen Typ für Variabel mit den Werten (neu, gebraucht, beschädigt) Java Basics - Anfänger-Themen 7
M Best Practice Programmierstil Graphen-A*-Suche Java Basics - Anfänger-Themen 5
M Suche Hilfe bei sehr kleinen Quelltexten Java Basics - Anfänger-Themen 2
E Suche Klasse die eine Bedinung prüft und einen von zwei Auswahlwerten zurückgibt... Java Basics - Anfänger-Themen 6
D Erste Schritte suche hilfe für db-anbindung Java Basics - Anfänger-Themen 36
S Java Servlet - Suche Java Basics - Anfänger-Themen 1
P Hashing suche Java Basics - Anfänger-Themen 4
K Suche Hilfe bei einfachem Java Code ( Debuggen ) Java Basics - Anfänger-Themen 1
J Variablen Auf der suche nach einem Befehl Java Basics - Anfänger-Themen 2
M Binäre Suche Fehler überall =( Java Basics - Anfänger-Themen 2
Farbenfroh Suche Übungsaufgaben: BinaryTree, Stack Java Basics - Anfänger-Themen 0
D Binärbaum Suche Java Basics - Anfänger-Themen 5
U Vererbung Suche Hilfe anhand eines Bsp. Java Basics - Anfänger-Themen 1
L Suche Programmier-Projekt mit Anleitung Java Basics - Anfänger-Themen 3
A Suche Programmierer für Android App Java Basics - Anfänger-Themen 1
H Suche Vergleichstabelle für die Klassen String und StringBuilder Java Basics - Anfänger-Themen 1
X [SUCHE]Mitentwickler Java Basics - Anfänger-Themen 10
P Methoden suche funktion die char wert ausgibt wenn man numerischen wert und radix angibt Java Basics - Anfänger-Themen 1
D Binare Suche Java Basics - Anfänger-Themen 1
C Erste Schritte Bereich angeben bzw Fehler Suche Java Basics - Anfänger-Themen 6
L Suche in dreidimensionalen Arrays Java Basics - Anfänger-Themen 3
P Lineare Suche im Array Java Basics - Anfänger-Themen 5
X verschachtelte suche Java Basics - Anfänger-Themen 8
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
S Erste Schritte Suche nach einem guten JAVA-Buch (Definition im Thread) Java Basics - Anfänger-Themen 6
G suche den Begriff & wie programmiere ich sowas (ich ändere den Titel dann) Java Basics - Anfänger-Themen 2
M suche/brauche Links über rein GUI Beispielprogramme Java Basics - Anfänger-Themen 4
I Suche Component welches Map ähnelt Java Basics - Anfänger-Themen 11
D Binäre Suche für Integerarray in rekursiver Funktion Java Basics - Anfänger-Themen 5
G Erste Schritte Suche nach Zeichenkette Java Basics - Anfänger-Themen 26
steffomio Suche brauchbares I18N Lib Java Basics - Anfänger-Themen 4
J Suche Tipps zum erstellen von Algorithmen Java Basics - Anfänger-Themen 5
D Artikel-Suche implementieren Java Basics - Anfänger-Themen 7
S suche nach eclipse plug-in Java Basics - Anfänger-Themen 3
W Compiler-Fehler Binäre Suche Java Basics - Anfänger-Themen 2
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
K Suche geeignete Code-Beispiele Java Basics - Anfänger-Themen 4
P Suche Java Programme mit gutem/anfängertauglichem Quellcode Java Basics - Anfänger-Themen 8
I Suche Compiler in Java SDK Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben