Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind

gdgfff

Neues Mitglied
Wie kann man überprüfen ob eine neunstellige Zahl alle Ziffern von 1-9 genau einmal enthält? Man kann ja jede Stelle einzeln überprüfen aber das ist ein ließen Aufwand, wie lässt sich dies kompakt gestalten?
 
Eine andere Möglichkeit wäre durch wiederholtes Modulo 10 und Ganzzahldivision durch 10 die einzelnen Ziffern zu extrahieren und ein boolean-Array der Größe 9 zu verwenden und die Ziffern (minus 1) als Index benutzen. Am Ende müssten dann alle Einträge true sein. Natürlich könnte man auch ein interger-Array nehmen und jeweils an der Stelle des Index hochzählen. Sollte man dann über 1 kommen, kann man abbrechen und false ausgeben.
 
Ich verstehe nicht viel von Java und kann dir leider nicht gross helfen aber du könntest auch einfach Regex verwenden.

Code:
^(?!.*(.).*\1)[1-9]{9}+$
Der Wert muss 9-stellig sein, nur Zahlen zwischen 1-9 sind erlaubt und jede Zahl darf nur einmal vorkommen.
 
Zuletzt bearbeitet:
Man könnte die Idee von @JCODA aufgreifen und auch ohne Arrays auskommen, wenn man jede Ziffer als Stelle einer Zahl auffasst (Math.pow(10, ziffer-1)).
 

Zurück
Oben