Zufallszahl mit Wertebereich und !=0

WenzelPaul

Mitglied
Es soll eine zum Beispiel eine 4-stellige Zahl erzeugt werden wo keine 0 vorkommen darf.
Es gibt ja java.util.random aber das hilft mir nicht wirklich weiter.
Eine Idee jemand?
 
In etwa sowas :
(nextInt (8)+1)*1000 +
(nextInt (8)+1)*100 +
(nextInt (8)+1)*10 +
(nextInt (8)+1)
aus java.util.random sollte das liefern.

grüsse
 
Moin!
Eine andere Möglichkeit:
Um zu testen, ob eine Zahl keine Null enthält, kannst du folgendes machen:
Code:
if(String.valueOf(integer).indexOf("0") ==-1){

}


*grüssle*
MeinerEiner
 
Code:
if(String.valueOf(zufallszahl).indexOf("0") ==-1)

was passiert denn da?
wie erreiche ich das der wertebereich nur positive 4-stellige zahlen ausgibt? also von +1111 bis +9999 ?

habe schon
 
Zuletzt bearbeitet:
was passiert denn da?
wie erreiche ich das der wertebereich nur positive 4-stellige zahlen ausgibt? also von +1111 bis +9999 ?

versuchs mal mit dem code von bernhard, der sieht ja vielversprechend aus und liefert nur werte zwischen 1111-9999 ohne 0er


was meinereiner hier verwendet ist: er überprüft ob in der zahl, eine 0 steht (indem er sie in einen string umwandelt und dann eine standard methode verwendet), wenn ja musst du eine neue zahl erzeugen, wenn nein kannst du die zahl verwenden


z.bsp.

Java:
zufallszahl = 0;
while (String.valueOf(zufallszahl).indexOf("0") != -1) {
  zufallszahl = nextInt(9999);
}
 
Zuletzt bearbeitet:
Der integer Wert wird in einen String umgewandelt, und es wird der Index des Zeichens 0 ermittelt. Falls dieser -1 ist, ist keine 0 enthalten.

Das ist wie gesagt nur eine Überprüfung.. Erstellen musst du die Zahl schon selbst und kannst dann halt überprüfen

Aber wenns dir nur um 4 stellige postive Zahlen geht, dann solltest du es eher wie bernhard2211 machen..

*grüssle*

MeinerEiner
 
okay danke habs nun so gelöst

Code:
 public void legeZufallszahl()
  {
	  Random r = new Random();
	  zufallszahl1 = (r.nextInt(8)+1) ;
	  zufallszahl2 = (r.nextInt(8)+1);
	  zufallszahl3 = (r.nextInt(8)+1);
	  zufallszahl4 = (r.nextInt(8)+1);
 
die andere lösung mit dem erzeugen so lange bis die überprüfung stimmt (keine 0 drinen), könnte angewendet werden, wenn deine zahlen größer werden würden

z.b. 10 ziffern, da das zusammenhängen und erzeugen doch viel händische arbeit sind

musst du überlegen, ob auch mal schnell 5 oder mehr ziffern verlangt werden können, oder ob das nicht der fall ist
 
jetzt mal ne andere frage ...

Ich habe eine 4-stellige positive zufallszahl erstellt.
Jetzt will ich eine weitere 4-stellige positive zufallszahl erzeugen und die mit meiner ersten vergleichen.
Es soll solange eine 4-stellige positive zufallszahl erzeugt werden, bis ich meine erste 4-stellige positive zufallszahl erraten habe.
 
Zurück