Java feststellen ob mehrstellige Zahl aus den gleichen Zahlen besteht?

4 Antworten

Und hier ein koservativer Ansatz über den Weg mit Strings. :)

public static boolean isLiquorNumber(int value)
{
   if(number < 10) 
      return false;

   String number = Integer.toString(value);
   String firstDigit = number.substring(0, 1);
   boolean result = true;

   for(int i = 1; i < number.length; i++)
   {
      if(!number.substring(i, 1).equals(firstDigit))
      {
         result = false;
         break;
      }
   }

   return result;
}

Wenn es nicht zwingend auf Ausführungsgeschwindigkeit ankommt (da ist der Lösungsweg mit Integern und Modulo besser), dann bevorzuge ich solche Algorithmen, da diese näher am menschlichen Denken liegen.

Woher ich das weiß:Hobby – private Programmiererei

Deinen Ansatz habe ich nicht verstanden, aber überprüfen, ob alle Ziffern einer Zahl gleich sind, kannst du z.B. so

public static boolean gleicheZiffern(int zahl) {
  if(zahl <= 10) return false;
  int ziffer = zahl % 10;
  zahl /= 10;
  while(zahl > 0) {
    if(zahl % 10 != ziffer) return false;
    zahl /= 10;
  }
  return true;
}

Sry, hatte die Aufgabenstellung nicht mit kopiert.

// liefert zurueck, ob i eine "Schnapszahl" ist, also mehr als eine Stelle hat

// und aus lauter gleichen Ziffern besteht

// Sie duerfen davon ausgehen, dass i >= 0 ist.

// Beispiele:

// ----------

// 11, 99, 222, 3333, 444444444 sind "Schnapszahlen"

// 0, 1 und 8 sind KEINE "Schnapszahlen"

Schreib doch mal die Aufgabenstellung genau hin.

Java feststellen ob mehrstellige Zahl aus den gleichen Zahlen besteht?

zunächst: das Wort "Zahlen" soll wohl "Ziffern" bedeuten.

Dann: das kann bedeuten: schauen, ob mindestens 2 Ziffern gleich sind oder: schauen ob alle Ziffern gleich sind.