String größer kleiner gleich vergleichen

phillip12397

Mitglied
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)

System.out.println("Das Wort existiert nicht");





if (suchwort.equals(x_mitte));

System.out.println(x_mitte + 1);
 
Wie sollen denn ints mit Strings verglichen werden?
Ist "Ananassalat" größer oder kleiner als 325865784746? 😉
 
Öhm Wat?

😕

Das was du vorhast ist nicht möglich bzw Sinnvoll.

Sollte der String nur eine Nummer enthalten dann Wandel diese in ein int um. Die Klasse Integer hat dazu passende Methoden.
 
Zuletzt bearbeitet:
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);

}
}
 
Zuletzt bearbeitet von einem Moderator:
Code-Tags! Wenn nicht, ist das nicht gerne gesehen. .compareTo() hast du doch schon drinne! Mach dich mit der Funktionsweise vertraut.

Mh..... Achtung..... Ich schmeiße die Glaskugel an, Bin search auf sortiertem String array?
 
Wenn ich dich richtig verstanden habe:
Java:
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
phillip12397 hat gesagt.:
...suchwort.compareTo(x_links)...
Du willst ein String mit einem Integer vergleichen. Das geht nicht ohne weiteres. Allgemein kann ich dein Gedankengang beim Lösen nicht nachvollziehen.
 

Zurück
Oben