Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » 4stellige Zufallszahl zwischen 0000 und 9999

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
11.06.2006, 09:57 Uhr
icestorm



Hallo!

Ich brauche eine Funktion, um eine 4-stellige Zufallszahl zwischen 0000 und 9999 zu erstellen. Diese Zahl soll vom Typ int sein.

Also es soll auch 0001 und 0201 oder so kommen.
Und da liegt mein Problem, kann ich irgendwie eine 0 an die erste Stelle von einen Integer geben? Wenn ja wie?

Hier ist mein Ansatz, aber dazu könnte ich gleich nur eine Zufallszahl zwischen 1000 und 9999 generieren lassen.


Java:

    public int newPinCode(){
        String pruefPin;
        int pinCode;
        do{
            pinCode = (int) (Math.random() * 9999);
            pruefPin = "" + pinCode;
        }while(pruefPin.length() != 4);
        return pinCode;
    }



Wenn ich eine 0 vor eine Integer Variable geben kann, dann wüsste ich schon, wie ich das ca machen würde:


Code:
public int newPinCode(){
    int pinCode;
    String pruefPin;
    pinCode = (int) (math.random() * 9999);
    pruefPin = "" + pinCode;
    for(int i = pruefPin.length(); i <= 4; i++){
        // 0 vor pinCode
    }
}



So, hoffe ich bekomme hier Hilfe (aber so wie ich das Forum kenne, bin ich mir da ziemlich sicher^^)

cu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.06.2006, 10:29 Uhr
KaraHead



Das sieht für mich aus, wie die Mindbreaker Aufgabe von der Uni/Fh, stimmts?

Also ich würde es so lösen, dass ich eine Zufallszahl zwischen 0-1 erstelle. So werden auch die führenden Nullen mit angezeigt.

C++:
float num = new Random().nextFloat(); // erstellt eine Zahl zwischen 0.0 und 1.0



Die Usereingabe kannst du dann durch 4 Teilen, um eventuell vortlaufende Nullen sichtbar zu machen. Und dann die 2 Kommazahlen vergleichen.

Das ist nur eine grobe Idee, evtl. musst du noch durch Kommaverschiebung was anpassen.
Versuchs einfach mal

Gruß KaraHead
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.06.2006, 12:23 Uhr
icestorm



Ja, ist eine Aufgabe von der 1. Klasse in der HTL.

Zum abgeben ist es eh schon zu spät, aber es interessiert mich trotzdem

Werds dann später mal versuchen

Danke übrigens (wiedermal)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.06.2006, 16:17 Uhr
kronos
Quotenfisch
(Operator)



Code:
System.out.printf("%04d\n",new Random().nextInt(10000));

--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 12.06.2006 um 16:18 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.06.2006, 21:18 Uhr
theosoft



Hi,
ich finde die "kronos"-Zeile spannend, komme aber nicht klar damit:
Mein Compiler sagt:

Zitat von Fehlermeldung:

The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, int)


--
ifS (immer fröhliches Schaffen)
theosoft
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.06.2006, 22:39 Uhr
kronos
Quotenfisch
(Operator)


bei mir geht's, evtl. casten?
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.06.2006, 12:55 Uhr
theosoft



Erwartet wird ein Object, der übergebene int wird nicht akzeptiert.
Sorry, als blutiger Anfänger weiss ich nicht, wie ich mir da mit casten helfen könnte?
--
ifS (immer fröhliches Schaffen)
theosoft
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.06.2006, 13:02 Uhr
kronos
Quotenfisch
(Operator)



Code:
System.out.printf("%04d\n",(Object)new Random().nextInt(10000));

aber komisch... womit kompilierst du denn?
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.06.2006, 13:14 Uhr
CDW



afaik gibts printf erst ab der 1.5 Version (also Version überprüfen )
ansonten: es geht doch nur um die Anzeige oder nicht?


Code:
String ausgabe=new Random().nextInt(10)+new Random().nextInt(10)+new Random().nextInt(10)+new Random().nextInt(10);

hab jetzt keine Möglichkeit es zu testen - Casting sollte aber der Compiler "von alleine" erledigen (sonst müsste auch: (new Random().nextInt(10)).toString());klappen)
wenns darum geht, eine schon vorhandene Zahl mit Nullen anzuzeigen: entweder 1.5 nutzen oder eben eine eigene Printffunktion schreiben:

Code:
public String IntToStringEx(int zahl,int stellen)
{
    String ergebnis=Integer.toString(zahl);
    for (int i=ergebnis.length();i<stellen;i++)
    {
        ergebnis="0"+ergebnis;
    }

}



auch ungetestet
--
EB FE
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.06.2006, 13:32 Uhr
kronos
Quotenfisch
(Operator)



Zitat von CDW:
afaik gibts printf erst ab der 1.5 Version (also Version überprüfen )

Sein Kompiler kennt ja offenbar 'nen Prototypen...


Code:
hab jetzt keine Möglichkeit es zu testen - Casting sollte aber der Compiler "von alleine" erledigen
Hmm, von int zu String? Vielleicht testest du doch noch mal...


Code:
(sonst müsste auch: (new Random().nextInt(10)).toString());klappen)

Primitive typen haben keine Methoden...
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: