Lösungen zu einem Lückentext finden

J

Joschka

Neues Mitglied
Ich versuche einen Lückentext automatisch zu lösen. Der Input sieht ungefähr so aus:

Input:
__a _____n _______t _n _i___ _e_________ __s d__ _____e__ __d _i____ e__ __t___. _s _s_ __n_ ____e __n ______n ___e___, _i_ i_ _i_ ___h____ __________e __b_____ ___d__ s_____, _o __s_ s__ _i__ ___t___ _e________ _r_____. __________n _n_ _a_________ s____ e_____ _______b__ ___d ____n ______e___.

Es in in so aus der die die ein ist Opa sie und und von dass eine eine sind einer Liste schon sowie einige findet Jürgen Rätsel sollen werden ergeben gegeben lustige Wörtern Apotheke blättert gebracht richtige Buchstaben Geschichte vorgegeben Leerzeichen Reihenfolge Satzzeichen Zeitschrift

Die richtige Lösung ist logischerweise:
Opa Jürgen blättert in einer Zeitschrift aus der Apotheke und findet ein Rätsel...

Das Programm gibt aber aus:
Opa, Jürgen, blättert, null, einer, Zeitschrift, aus, der, Apotheke, null, findet, null, Rätsel,...

Es soll alle "Lücken" für jedes Wort durchgehen und nach 2 mit einer identischen und einmaligen Anzahl von Buchstaben suchen. Dies ist wichtig für "Lücken" ohne Buchstaben.
Anschließend vergleicht es wieder ein Wort und eine Lücke, sucht dann aber nach dem gleichen Buchstaben an der gleichen Stelle des Wortes.
Wenn es etwas findet, das passt, erhöht einen counter, um sicherzustellen, dass es die einzige Möglichkeit ist. Dann fügt sie das Wort dem output-string hinzu.
Das ganze wird oft wiederholt, in der Hoffnung, dass es alles findet.

Ein Problem ist, dass es nur Wörter einsetzt, wenn es keine andere Möglichkeit gibt, aber wenn ein Wort 2 Mal in der Liste steht, weiß es nicht, welches es nehmen soll. Ich weiß nicht, wie ich das umsetzen soll, und außerdem muss es noch ein anderes Problem geben.

Es wäre nett, wenn mir jemand weiterhelfen könnte.

Der Code:
Das ist eigentlich unwichtig:
public class Main {

    public static void main(String[] args) {

        try {

            BufferedReader ein = new BufferedReader(new InputStreamReader(System.in));

            String s = ein.readLine();

            String s2 = ein.readLine();

            s = s.replace(",", "");

            s = s.replace("!", "");

            s = s.replace(".", "");

            s = s.replace(":", "");

            s = s.replace("?", "");

            s = s.replace(";", "");

            s = s.replace("&", "");

            String[] stringResult = s.split(" ");

            String[] stringResult2 = s2.split(" ");

            System.out.println(Arrays.toString(stringResult));

            System.out.println(Arrays.toString(stringResult2));

            

            int[] charCount = new int [stringResult.length] ;

            

            for(int i=0; i<stringResult.length; i++) {

                charCount[i] = stringResult[i].length();

                

            }

            

            int[] charCount2 = new int [stringResult2.length] ;

            

            for(int i=0; i<stringResult.length; i++) {

                charCount2[i] = stringResult2[i].length();

                

            }

            String[] Final = new String [stringResult.length];

            Boolean[] used = new Boolean [stringResult2.length];
Code:
            for(int i = 0; i<stringResult2.length; i++) {
                used[i]= false;
            }
            for(int reps = 0; reps <(stringResult.length +1) ; reps++){
            
                for(int i=0; i<charCount2.length; i++) {
                // geht alle WÖRTER durch   
                    int counter = 0;
                    int counter2 = 0;
                    int savej1 = 0;
                    int savej2 = 0;
                    String save4Output = null;
                    
                    for(int j=0; j<charCount.length; j++) {
                        if(Final[j] != null) {
                            continue;
                        }
                        else {
                        //geht alle LÜCKEN durch
                            if (charCount2[i] == charCount[j] && Final[j] == null && used[i] == false){
                                counter ++;
                                savej1 = j;
                                
                            }
                        }
                        
                    }
                    if (counter == 1){
                        Final [savej1] = stringResult2[i];
                        used[i] = true;
                    }
                    else if(counter > 1) {
                        
                        char[] letters =new char[stringResult2[i].length()];
                        letters = stringResult2[i].toCharArray();
                        //einzelne Buchstaben von Wörtern
                        
                        for(int j = 0; j < charCount.length; j++) {
                        // geht alle LÜCKEN durch
                            
                            if(Final[j] != null) {
                                continue;
                            }
                            else {
                            
                                if(charCount2[i] == charCount[j]) {
                                    
                                
                                    char[] spaces =new char[stringResult[j].length()];
                                    spaces = stringResult[j].toCharArray();
                                    //einzelne Zeichen von Lücken
                                    //int ja = 0;
                                
                                    for(int l = 0; l < spaces.length; l++) {
                                        if(letters[l] == spaces[l] && used[i] == false) {
                                            System.out.println("Jawollja");
                                            savej2 = j;
                                            save4Output =stringResult2[i];
                                            counter2 ++;
                                            //Final[j] = stringResult2[i];
                                            System.out.println(Arrays.toString(Final));
                                            break;
                                        }
                                    
                                    }
                                }
                            }
                            
                        }
                        
                        if(counter2 ==1) {
                            Final[savej2] = save4Output;
                            used[i] = true;
                        }
                        else { continue; }
                        
                                                                                                                        //System.out.println(letters);
                    }
                    
                    
                }
            }
                
            
                System.out.println(Arrays.toString(Final));
            
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
            
            
    }
    
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J "Javakurs Freitagsrunde" - Lösungen Java Basics - Anfänger-Themen 6
C Finden mehrerer Lösungen Java Basics - Anfänger-Themen 0
J Sudoku mehrere Lösungen Java Basics - Anfänger-Themen 29
K Hamstersimulator / Hamster Modell Lösungen gesucht Java Basics - Anfänger-Themen 3
M Java Berechnung mit mehreren Lösungen? Java Basics - Anfänger-Themen 9
D Übungen und Lösungen Java Basics - Anfänger-Themen 1
megachucky Suche Programmieraufgabe mit Lösungen. Java Basics - Anfänger-Themen 3
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
L Alle Ziele in einem Raster abknallen Java Basics - Anfänger-Themen 17
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
H 3 Comparatoren zu einem zusammenfassen - Chaining... Java Basics - Anfänger-Themen 15
N LocalTime einem Objekt zuweisen Java Basics - Anfänger-Themen 2
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
L Breadth-First Search statt einem Pfad, alle Pfade herausfinden Java Basics - Anfänger-Themen 4
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
P Arraylist zu einem Array bringen mit Verschachtelung Java Basics - Anfänger-Themen 11
S Ersetzen eines Asterix in einem String Java Basics - Anfänger-Themen 8
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
M Von einem JTextField Doublewerte entgegennehmen Java Basics - Anfänger-Themen 2
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
H Objekt aus einem Array löschen Java Basics - Anfänger-Themen 1
F Aufgabe: Abstand von einem Punkt zu einem anderen Punkt Java Basics - Anfänger-Themen 10
H Befehle in einem Menü aktivieren Java Basics - Anfänger-Themen 1
L Anzahl der Elemente key in einem Array mit log(N) Laufzeit Java Basics - Anfänger-Themen 4
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
B Werte aus einem Unterprogramm in ein Array schreiben Java Basics - Anfänger-Themen 2
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
J erstes Vorkommen eines Chars aus einem String entfernen Java Basics - Anfänger-Themen 3
F Summe in einem Array bestimmen Java Basics - Anfänger-Themen 3
D Alle Möglichkeiten, n-Anzahl aus Elementen aus einem Array zu wählen, ausgeben? Java Basics - Anfänger-Themen 23
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
B String zu einem bestehenden String hinzufügen Java Basics - Anfänger-Themen 9
F Sektglasaufgabe aus einem Programmierbuch Java Basics - Anfänger-Themen 7
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
T relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
O Lambda Ausdrücke in einem Comparator Java Basics - Anfänger-Themen 4
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
E Zahlen von einem Array mit zahlen von zweitem Array vergleichen Java Basics - Anfänger-Themen 27
J Wie kann ich z.B. einem int-Wert einen String-Wert zuweisen? Java Basics - Anfänger-Themen 2
R Value von einem JSON-Objekt ausgeben Java Basics - Anfänger-Themen 4
S Was bewirkt ganz genau throw hinter einem Funktionsnamen? Java Basics - Anfänger-Themen 14
G Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind Java Basics - Anfänger-Themen 6
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
N Zeichen in einem Textfeld zählen und hinterlegen Java Basics - Anfänger-Themen 6
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
O findRoot Methode schreiben in einem Intervall Java Basics - Anfänger-Themen 31
O Primzahl rekursiv mit einem Wert ohne i, wie? Java Basics - Anfänger-Themen 6
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
S Schiffe versenken - Zufallszahlen in einem Array Java Basics - Anfänger-Themen 6
J Datentypen Komm in einem Android Buch mit Java nicht weiter... Java Basics - Anfänger-Themen 7
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
R Vererbung werte von einem Objekt aus ein anderes übertragen Java Basics - Anfänger-Themen 7
Dimax Leerzeilen aus einem String entfernen Java Basics - Anfänger-Themen 61
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
K In einem Case gefüllte Arraylist in einer anderen Case ausgeben Java Basics - Anfänger-Themen 2
J Mehrere paintComponenten in einem Programm Java Basics - Anfänger-Themen 0
A In einem String alle Eigennamen zählen Java Basics - Anfänger-Themen 6
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
T Auslagern von Methoden bei einem JFrame Java Basics - Anfänger-Themen 6
Dilara_K Abstand zwischen den Doppelwerten in einem Array herausfinden Java Basics - Anfänger-Themen 20
V Einem JButton anweisungen geben Java Basics - Anfänger-Themen 4
S Problem mit einem rekursivem FloodFill Algorithmus Java Basics - Anfänger-Themen 62
S Sequenz von Zahlen bei einem Stack möglich oder nicht möglich? Java Basics - Anfänger-Themen 5
M Methoden Zwei Methoden in einem Program laufen lassen...aber wie? Java Basics - Anfänger-Themen 2
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
A Harshad Zahlen sollen in einem Intervall ausgegeben werden Java Basics - Anfänger-Themen 8
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
H Stringanzeige in einem Label Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
N OOP 2 versch. Modi in einem Objekt de/aktivieren Java Basics - Anfänger-Themen 10
J Hintergrund bei einem Schachfeld Java Basics - Anfänger-Themen 1
N Methoden vorherigen Wert in einem Array lieferen Java Basics - Anfänger-Themen 8
P Aus einem Array zwei Arrays machen Java Basics - Anfänger-Themen 3
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
S JOptionPane mit Schleife in einem Ausgabefenster Java Basics - Anfänger-Themen 4
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
D Input/Output Array in einem String mit einem Trennzeichen verbinden Java Basics - Anfänger-Themen 17
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
Arif OOP Die Bindung zwischen einem äußeren und einem inneren Objekt Java Basics - Anfänger-Themen 2
V Elemente aus einem Array mit null überschreiben Java Basics - Anfänger-Themen 4
J Erste Schritte Problem mit einer bool-Variable in einem Bot-Programm Java Basics - Anfänger-Themen 1
sourcecorn Werte aus einem File lesen Java Basics - Anfänger-Themen 6
C Methoden Methode zu einem Binären Suchbaum Java Basics - Anfänger-Themen 8
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
A .txt Datei in einem Array speichern Java Basics - Anfänger-Themen 1
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
H Suche in einem Text Java Basics - Anfänger-Themen 17
H Leere Eingabe in einem array Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Anzeige

Neue Themen


Oben