Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Informatik in der Schule (http://www.informatikerboard.de/board/board.php?boardid=21)
--- Java-Programmcode zu Stringvergleichen (http://www.informatikerboard.de/board/thread.php?threadid=3043)


Geschrieben von Superstar567 am 21.05.2016 um 16:41:

  Java-Programmcode zu Stringvergleichen

Meine Frage:
Hallo Leute,

ich soll einen Code niederschreiben, der zwei Strings vergleicht und ausgibt wie oft der eine im anderen vorkommt. Unten der folgende Code.
Es wird kein Compilierungsfehler ausgegeben, aber wenn ich das Programm starte, gibt es keine Bildschirmrückgabe.
Was mache ich falsch?

Beste Grüße

Meine Ideen:
public class Occur{
public static void main(String[] args){
String x = "ei";
String y = "JaVa isT eIn KafFeE, eiNe InSEl unD Eine ProgRamMiersprAche!";
System.out.println(occurences(x,y));
}

public static int occurences(String eineKette, String andereKette){
int i = 0;
int counter = 0;
while(i<=andereKette.length()){
i = andereKette.indexOf(eineKette, i);
counter++;
}
return counter;
}
}



Geschrieben von eulerscheZahl am 21.05.2016 um 16:57:

 

Du hast deshalb keine Ausgabe, weil das Programm eine Endlosschleife macht.

Hast du ein Vorkommen von eineKette in andereKette, dann weist i = andereKette.indexOf(eineKette, i); der Variablen i immer den selben Wert zu. Du solltest bei indexOf i+1 verwenden.
Außerdem musst du in der Abbruchbedingung prüfen, ob i != -1 ist. Wenn der String nicht gefunden wird, liefert die Funktion nämlich -1.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH