Ein rotierter String

Hallo,

ich will ein Programm schreiben was auf die Kommandozeile zwei Strings (bei mir sind es String1 und String2) übergeben bekommt und prüft, ob String2 eine rotierente Version von String1 ist. Wenn ja, dass soll ein „Yes“ ausgegeben werden, wenn nicht, dann ein „No“. (Wenn gleich, soll „Yes“ )

Kleines Beispiel: Aufruf1 --> 12345__45123, dann kommt die erwartete Ausgabe "Yes"
Aufruf2 --> 12345 34521, dann kommt "No"

Wenn mir bitte jemand dabei helfen könnte, wie ich es programmieren könnte, wäre ich ihm sehr dankbar. Ich verzweifle schon seit 6 Stunden an diesem Prog. T.T

Danke fürs Lesen
Gruß Gaan

Hallo!

Wenn mir bitte jemand dabei helfen könnte, wie ich es
programmieren könnte, wäre ich ihm sehr dankbar. Ich
verzweifle schon seit 6 Stunden an diesem Prog. T.T

Wo hast du die Probleme? Algorithmus? Java-Syntax?

Gruß, Jan

Beim drehen der Zahlen, ich krieg es einfach nicht hin, wie mache ich es? mit welcher Schleife kann ich es prüfen?

Gaan

Beim drehen der Zahlen, ich krieg es einfach nicht hin, wie
mache ich es? mit welcher Schleife kann ich es prüfen?

Schleife ist schonmal gut. In der Schleife prüfst du string1 und string2 auf Gleichheit. Aber vorher muss du bei jedem Schleifendurchgang string2 veränderen, nämlich das 1. Zeichen vorne entfernen und hinten ranhängen. Sprich, du führst bei string2 die Rotation durch, und wenn die beiden Strings irgendwann gleich sind, weißt du, dass sie „rotationsgleich“ sind und brichst du die Schleife ab.

Jan

Hallo.

Beim drehen der Zahlen, ich krieg es einfach nicht hin, wie
mache ich es? mit welcher Schleife kann ich es prüfen?

Schleife ist schonmal gut. In der Schleife prüfst du string1
und string2 auf Gleichheit.

Alternativ kann man es auch ohne Schleife machen, indem man String1 an sich selbst anhängt und dann prüft, ob String2 in dem Ergebnis enthalten ist.
Also sowas in der Art:

if ((string1 + string1).contains(string2))
{
 System.out.println("Ja");
}
else
{
 System.out.println("Nein");
}

Sebastian.

Hallo!

if ((string1 + string1).contains(string2))

Das ist natürlich superb. Allerdings muss man dann ergänzend noch prüfen, ob die Strings gleich lang sind.

Jan

Hallo!

if ((string1 + string1).contains(string2))

Das ist natürlich superb. Allerdings muss man dann ergänzend
noch prüfen, ob die Strings gleich lang sind.

Da hast du natürlich recht, daran hatte ich gar nicht gedacht.

Sebastian.