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.
Hallo,
ich versuche ein Programm zu schreiben nur wenn ich versuche die Strings zu vergleichen (auch String mit nem int ich weiß nicht ob das geht) funktioniert das nicht
int x_links = 0;
int x_rechts = array.length -1;
int x_mitte = (x_links + x_rechts) / 2;
if (x_links>x_rechts || suchwort.compareTo(x_links)<0 ||suchwort.compareTo(x_rechts)>0)
//The method compareTo(String) in the type String is not applicable for the arguments (int)
Class String https://docs.oracle.com/javase/6/docs/api/java/lang/String.html
implementiert Comparable, ergo die compareTo(T t) Methode: Compares two strings lexicographically
sprich, wenn du es anders miteinander vergleichen willst, musst du die Methode überschreiben oder, wenn du eine eigene Klasse hast, Interface Comparable implementieren und compareTo, equals und HashCode je nach Bedarf anpassen.
also das ist mein programm momentan nur jetzt komme ich zum problem mit der binären suche
Java:
public class Binäre_Suche {
public static void main (String [] args)throws IOException {
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
int a;
String array [];
do {
System.out.println("Wieviele Wörter sollen eingelesen werden ?");
a = Integer.parseInt(in.readLine());
} while (a >= 6);
array= new String [a];
System.out.println("Bitte texte eingeben für die arrays: ");
for(int i = 0; i<array.length;i++) {
System.out.print("array["+i+"]: ");
array[i] = in.readLine();
}
System.out.println("welches Wort würden Sie gerne suchen: ");
String suchwort = in.readLine();
int x_links = 0;
int x_rechts = array.length -1;
int x_mitte = (x_links + x_rechts) / 2;
if (x_links>x_rechts || suchwort.compareTo(x_links)<0 ||suchwort.compareTo(x_rechts)>0)
System.out.println("Das Wort existiert nicht");
if (suchwort.equals(x_mitte));
System.out.println(x_mitte + 1);
}
}
Scanner scanner = new Scanner(System.in);
/** Array mit Text nach dem Befuellen */
String[] textArray = {"Fischers Fritz fischt frische Fische", "Ein schner Tag ist es Heute", "Welches ist das gesuchte Wort"};
System.out.println("Bitte Suchbegriff eingeben");
String input = scanner.nextLine();
checkForWord(textArray, input);
/** Konsolenausgabe */
Bitte Suchbegriff eingeben
Fische
Gesuchtes Wort: Fische Position im Array: 0, im Satz: Fischers Fritz fischt frische Fische
Du willst ein String mit einem Integer vergleichen. Das geht nicht ohne weiteres. Allgemein kann ich dein Gedankengang beim Lösen nicht nachvollziehen.