Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe mit meiner Gruppe folgende Aufgabe und könnte vielleicht paar Tipps brauchen, wie man Sachen vielleicht smarter machen kann.
Also wir sollen ein Programm erstellen, was auf eine Frage antworten kann. (z.B. Wo ist die Uni? -- Die Uni ist dort!) Die Semantik dürfen wir selber bestimmen, sprich kann also eine vereinfachte sein.
Die Frage wird über eine grafische Oberfläche eingelesen und ausgegeben.
Oberfläche ist fertig und ich lese Wörter aus Textdateien je nach Art in Arrays ein, aber das vergleichen funktioniert noch nicht. (Kann es daran liegen, dass ich bei den Arrays .readline habe und das andere .gettext und die Strings dann nicht die gleiche länge haben?
Im weiteren Verlauf sollen, dann ganz stumpf if Anweisungen für die jeweiligen Schlagwörter erstellt werden. Habt kennt ihr bessere Ideen oder Tipps für mich ?
aber das vergleichen funktioniert noch nicht. (Kann es daran liegen, dass ich bei den Arrays .readline habe und das andere .gettext und die Strings dann nicht die gleiche länge haben?
String[] a = new String[10];
String[] b = new String[10];
String[] c = new String[10];
String[] d = new String[10];
String[] f = new String[10];
Wie kann ich das kürzer machen ohne das er mir eine Null pointer exception raus wirft?
Das einlesen
Java:
for (int schleife = 0; schleife < woerter.length ; schleife++) {
if (schleife < woerter.length && vergleich != true) {
vergleich = true;
x = 0;
}
try {
BufferedReader reader = new BufferedReader(new FileReader(woerter[schleife]));
while (vergleich == true) {
String h = reader.readLine();
if (h == null) {
vergleich = false;
System.out.println("Datei eingelesen!");
} else {
if (schleife == 0) {
a[x] = h;
}
if (schleife == 1) {
b[x] = h;
}
if (schleife == 2) {
c[x] = h;
}
if (schleife == 3) {
d[x] = h;
}
if (schleife == 4) {
f[x] = h;
}
if (schleife == 5) {
Wann[x] = h;
}
if (schleife == 6) {
Wo[x] = h;
}
}
x++;
}
} catch (FileNotFoundException e) {
System.out.println("Irgendwas mit dem Einlesen stimmt nicht");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Wie kann ich das verbessern .. sollte ich vielleicht für die if's switch case anweisungen benutzen?
und das Vergleichen
Java:
//Entfernt das Fragezeichen
// substring (indexanfang, i-ende) somit schneidet letztes Zeichen ab
SArray[3] = SArray[3].substring(0, SArray[3].length() - 1);
//Schreibt den ersten Buchstaben des Artikels groß(für Satzanfang):
String a = SArray[2];
String b = "" + SArray[2].charAt(0); // erster Buchstabe
b = b.toUpperCase(); // in groß Umwandeln
SArray[2] = b + a.substring(1); //
vergleiche();
//Verarbeitung mit Text-Dateien
for (int i = 0; i < 15; i++) {
if (SArray[0].equals(Wo[0]) && Wo[i].equals(SArray[3])) {
SArray[0] = Wo[i+2];
}
}
ich habe jetzt das Vergleichen jetzt so umgeschrieben und rausgefunden, dass das erste Wort aus der Textdatei gefunden wird, aber nicht das zweite (sprich er wirft Fragewort gefunden, aber nicht Wort gefunden)
Hat jemand eine Idee warum ?
Java:
String Schluss =null;
//Verarbeitung mit Text-Dateien
String vergleichen = SArray[3];
for (int i = 0; i < 15; i++) {
if (SArray[0].equalsIgnoreCase(Wo[0])){
System.out.println("Fragewort gefunden!");
if( vergleichen.equalsIgnoreCase(Wo[1])) {
System.out.println("Wort gefunden");
Schluss = Wo[i+1];
}
}
}