Joa, ich schon wieder...
Dieses Mal geht es um ein Programm, das wir schreiben sollen, bei dem wir eine Reihe von Zahlen als String einlesen sollen, den String dann zerlegen und die Zahlenreihe dann daraufhin vergleichen sollen, welches die längste Reihe von gleichen aufeinander folgenden Zahlen ist.
Bislang sieht mein Code so aus:
Aber da kommt nie das richtige Ergebnis raus. Sobald drei oder mehr gleiche Zahlen aufeinander folgen, wird die Differenz zwischen "longestLänge" und der eigentlichen Länge immer größer. Der Fehler liegt irgendwo im Erhöhen des currentLänge-Counters. Aber ich bin noch nicht drauf gekommen, was es ist oder wie ich es beheben kann...
Dieses Mal geht es um ein Programm, das wir schreiben sollen, bei dem wir eine Reihe von Zahlen als String einlesen sollen, den String dann zerlegen und die Zahlenreihe dann daraufhin vergleichen sollen, welches die längste Reihe von gleichen aufeinander folgenden Zahlen ist.
Bislang sieht mein Code so aus:
Code:
package übungenUni;
import java.util.Scanner;
public class Reihe
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Werte-String:");
String werte = in.next();
int currentLänge = 1;
String currentWert = "";
int longestLänge = 1;
String longestWert = "";
String[] einzelWert = werte.split(";");
for (int i=0; i<einzelWert.length-1; i++)
{if (einzelWert[i].equals(einzelWert[i+1]))
{currentLänge++;
currentWert=einzelWert[i];
if (currentLänge>longestLänge)
{longestLänge=currentLänge;
longestWert=currentWert;
currentLänge=1;}
}
}
System.out.println("Die längste Reihe besteht aus " +
longestLänge + " " + longestWert + "en.");
}
}
Aber da kommt nie das richtige Ergebnis raus. Sobald drei oder mehr gleiche Zahlen aufeinander folgen, wird die Differenz zwischen "longestLänge" und der eigentlichen Länge immer größer. Der Fehler liegt irgendwo im Erhöhen des currentLänge-Counters. Aber ich bin noch nicht drauf gekommen, was es ist oder wie ich es beheben kann...