# Zufallszahlengenerator



## MaTo (8. Feb 2012)

Moin Ihr Lieben 

Ich bin ein Neuling und habe angefangen Wirtschaftsinformatik zu studieren. Für meinen neuen Job soll ich 256, bzw. 255 32Bit Zahlen als Hexadezimalzahlen erstellen, wie z.B. EE0E612C. Nur halt 255 Stück davon.

Jetzt dachte ich könnte ich in Java ein Generator nutzen, der mir 255 verschiedene Hexadezimalzahlen nach dem Zufallsprinzip generiert. 

Gibt es dazu schon fertige Programme, bzw. könnt Ihr mir dabei weiterhelfen? 

Liebe Grüße


----------



## faetzminator (8. Feb 2012)

Das ist zimlich einfach.
Es gibt die Klasse [c]Random[/c] und die praktische Methode [c]Integer.toHexString()[/c]:

```
Random random = new Random();
List<String> numbers = new ArrayList<String>();
while (numbers.size() < 255) {
    String value = Integer.toHexString(random.nextInt());
    value = StringUtils.leftPad(value.toUpperCase(), 8, '0');
    numbers.add(value);
}
for (String number : numbers) {
    System.out.println(number);
}
```
Anmerkung: Auf Zeile 5 hab ich [c]toUpperCase()[/c] drin, damit e354 zu E354 wird. Das [c]StringUtils.leftPad()[/c] ist aus einer Lib von Apache und füllt den String vorne mit Nullen, bis der String 8 Zeichen lang ist. Kann natürlich - wenn man die Lib nicht verwenden will - auch von Hand programmiert werden.


----------



## MaTo (8. Feb 2012)

SUPER GEIL!!! Vielen Dank...

Jetzt weiß ich leider nicht genau wie ich es benutzen kann... Wenn ich versuche es in BlueJ zu benutzen, dann erhalte ich nach der Erstellung einer Klasse einen vorgefertigen Rumpf: 


```
/**
 * Write a description of class Generator here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Generator
{
    // instance variables - replace the example below with your own
    private int x;

    /**
     * Constructor for objects of class Generator
     */
    public Generator()
    {
        // initialise instance variables
        x = 0;
    }

    /**
     * An example of a method - replace this comment with your own
     * 
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y 
     */
    public int sampleMethod(int y)
    {
        // put your code here
        return x + y;
    }
}
```

Der bringt mir in diesem Fall aber nicht viel.... Wie gehe ich hierbei vor? 

Oder sollte ich lieber Eclipse dafür benutzen? 

LG


----------



## Gossi (8. Feb 2012)

MaTo hat gesagt.:


> SUPER GEIL!!! Vielen Dank...
> 
> Jetzt weiß ich leider nicht genau wie ich es benutzen kann... Wenn ich versuche es in BlueJ zu benutzen, dann erhalte ich nach der Erstellung einer Klasse einen vorgefertigen Rumpf:
> Oder sollte ich lieber Eclipse dafür benutzen?



Nimm alles, aber nicht BlueJ, nimm Eclipse oder Netbeans


----------



## HimBromBeere (8. Feb 2012)

Ich weiß gar nicht, was immer alle mit diesem cämlichen BlueJ haben, hab es zwar selbst nie probiert, aber nach allem, was ich bisher hier gelesen habe, scheint es echt der letzte Mist zu sein. Woher bekommt man sowas? Erklärt der Lehrer einem so JAVA?


----------



## Marco13 (8. Feb 2012)

Habe bisher auch nur die Webseite angesehen. Es ist vielleicht für manche Sachen nicht verkehrt, grobes OO-Verständnis und einen ersten Einstieg usw. ... Aber ... es _könnte _sein, dass teilweise Aufgaben gestellt werden, die nichts mit dem eigentlich von BlueJ verfolgten Ziel zu tun haben... (und eine (statische) Utility-Methode, die keine Eingaben bekommt und nur eine List<String> aussuckt, könnte da dazugehören...)


----------



## Fab1 (8. Feb 2012)

HimBromBeere hat gesagt.:


> Ich weiß gar nicht, was immer alle mit diesem cämlichen BlueJ haben, hab es zwar selbst nie probiert, aber nach allem, was ich bisher hier gelesen habe, scheint es echt der letzte Mist zu sein. Woher bekommt man sowas? Erklärt der Lehrer einem so JAVA?



Viele Lehrer und Professoren greifen am Anfang zu BlueJ. Damit soll man angeblich leichter an OOP Verständnis gewinnen. Selbst habe ich es allerdings auch nur mal kurz angeschaut. Schlecht ist es sicherlich nicht, für den der es mag


----------



## faetzminator (8. Feb 2012)

MaTo hat gesagt.:


> Jetzt weiß ich leider nicht genau wie ich es benutzen kann... Wenn ich versuche es in BlueJ zu benutzen, dann erhalte ich nach der Erstellung einer Klasse einen vorgefertigen Rumpf:



Einfach eine Methode erstellen und den Code (ohne die untere Schleife) reinpacken:

```
public List<String> getRandomNumbers() {
    Random random = new Random();
    List<String> numbers = new ArrayList<String>();
    while (numbers.size() < 255) {
        String value = Integer.toHexString(random.nextInt());
        value = StringUtils.leftPad(value.toUpperCase(), 8, '0');
        numbers.add(value);
    }
    return numbers;
}
```
Von mir aus kann die auch als [c]static[/c] deklariert werden.


----------



## Gossi (8. Feb 2012)

Ich habe einmal bei meinem Kumpel BlueJ benutzt (war für die Schule) und ich muss sagen:

Eclipse or Netbeans ever, BlueJ never (again)


----------



## MaTo (8. Feb 2012)

Nochmals vielen Dank für die Antworten!!! 

Für mich als Neuling und als Noob in Java ist BlueJ deutlich einfacher als Eclipse. Gerade wie schon eben erwähnt die OOP, mithilfe von BlueJ einfacher nachzuvollziehen ist.

Habe den Code in eclipse eingefügt: 
	
	
	
	





```
public List<String> getRandomNumbers() 
	{
	    Random random = new Random();
	    List<String> numbers = new ArrayList<String>();
	    while (numbers.size() < 255) 
	    {
	        String value = Integer.toHexString(random.nextInt());
	        value = StringUtils.leftPad(value.toUpperCase(), 8, '0');
	        numbers.add(value);
	    }
	    return numbers;
	}

}
```

Der kommt damit auch nicht klar und sagt mir: "Multiple markers at this line
                                                               -Syntax error on token..." (1. Linie)

Hmm... 

LG


----------



## Landei (8. Feb 2012)

Kannst du irgendwo imports angeben? In einer normalen Java-Klasse müsste ganz oben (genauer gesagt hinter einer - allerdings optionalen - Package-Angabe) ein [c]import java.util.Random;[/c] kommen. Ähnliches für StringUtils (aber da gibt es mehrere Varianten, lass das mal testweise weg)


----------



## Fab1 (8. Feb 2012)

du hast es aber innerhalb einer Klasse und außerhalb einer Methode eingefügt oder?


----------

