# zufalls string und zahl erzeugen



## Hi (7. Jan 2004)

hihi!
wie kann ich einen zufalls string mit zahlen erzeugen, bei dem man die länge des string mitbestimmen?? gibt es dazu irgendeine geeignete methode??
thx


----------



## Stefan1200 (7. Jan 2004)

Ich weiss nicht, ob es eine spezielle Methode dafür gibt, aber Theoretisch (ich weiss ja nicht wofür du das brauchst) kannst du das auch so machen:

Für eine 5 stellige Zahl:


```
int num = 10000 + Math.abs(r.nextInt()) % 99999;
System.out.println(num);
```


----------



## Hi (7. Jan 2004)

thx
ich brauche eine für einen beliebigen zufalls string, brauche leida keine zahlen (


----------



## Nobody (7. Jan 2004)

zufallstext:
die wörter ergeben KEINEN sinn.
du erstellst worte aus chars, wobei für jeden char(buchstaben) der int werd durch random bestimmt wird.

worte die sinn ergeben
du definierst ein paar worte vor und speicherst die in einem string array ab und bestimmst durch die zufallszahl den index des wortes. kannst dafür natürlich auch ne datenbank, lineare listen, bäume und vieles vieles mehr und sogar kombiniert nutzen.


----------



## Hi (8. Jan 2004)

Hab hier mal einen ansatz, dass dumme ist es produizert nur zufallszahlen von A-Z aba keine a-z und 0-9

weiss eines wie es gehen kann??



```
Random r = new Random();
String s = "";

for (int i=0; i<100;i++)
{
s += (char)(r.nextInt(26) + 65);
}
System.out.println(s);
```


----------



## bo (8. Jan 2004)

hallo !

dieses problem hatte ich auch schon...

hab da die zeichen die im wort vorkommen können in ein char[] gespeichert :


```
final char[] ZEICHEN = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', '5', '6', '7' };
```

und diese dann wie bei deiner routine mit zufallszahlen wieder ausgelesen :

```
for (int i=0; i<100;i++)
{
   int iIndex = random.nextInt( ZEICHEN );
   s += ZEICHEN[ iIndex ] ;
}
```

greeez bezzi


----------



## Hi (8. Jan 2004)

vielen dank!!!


----------



## manni2 (30. Okt 2009)

Hallo, liebe Forengemeinde!

Ich möchte ein Programm erstellen, das mir aus einem Haufen an *Buchstaben, Sonderzeichen und Zahlen* ein *zufälliges* auswählt und dann wiedergibt.
Bislang bin ich, um diesen "Haufen" zu definieren, oben auf diese statische Variable gestoßen.


```
final char[] C = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', '5', '6', '7', '%', '?', '&' };
```

Wie baue ich jene nun ein, sodass ein zufälliges Element ausgewählt und per System.out.print() wiedergegeben wird?

Ich bedanke mich im Voraus für Ihre Mithilfe!


Mit freundlichen Grüßen
Mannfred Burghardt


----------



## Michael... (30. Okt 2009)

Nicht schlecht! Einen Thead von 2004 ausgraben und dann ein Frage posten die zwei bzw drei Threads zuvor beantwortet wurde ;-)
http://www.java-forum.org/java-basics-anfaenger-themen/1406-zufalls-string-zahl-erzeugen.html#post6400


----------



## manni2 (30. Okt 2009)

Guten Tag,

ich wollte dies in einen passenden Bereich schreiben. Daher benutzte ich die Suchfunktion dieses Forums.
Obiges erzeugt bei mir einen Kompilierfehler. Was mache ich diesbezüglich falsch?


```
public class ap2 {
final char[] ZEICHEN = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 

'r', 's', 't', 'u', '5', '6', '7' };
	public static void main(String[] args){                                
		String s = "";
		
		   int iIndex = random.nextInt( ZEICHEN );
		   s += ZEICHEN[ iIndex ] ;
		
		System.out.print(s);
		}
	}
```

Wie Sie merken, habe ich nicht viel Ahnung von Java, jedoch finde ich Spaß daran, durch Ausprobieren, Sachen herauszufinden.

Mit freundlichen Grüßen
Mannfreid Burghardt


----------



## ARadauer (30. Okt 2009)

Random rnd = new Random();
System.out.println(C[rnd.nextInt(C.length)]);


grml... zu langsam


----------



## Michael... (30. Okt 2009)

manni2 hat gesagt.:


> [JAVA=8]	   int iIndex = random.nextInt( ZEICHEN.length());[/code]


Muss ZEICHEN.length() heissen. s. Thread ARadauer


----------



## faetzminator (30. Okt 2009)

[c]ZEICHEN.length[/c], nicht [c]ZEICHEN.length()[/c]


----------



## Michael... (30. Okt 2009)

faetzminator hat gesagt.:


> [c]ZEICHEN.length[/c], nicht [c]ZEICHEN.length()[/c]


 so kann's gehen, wenn man was übernimmt ohne nachzudenken


----------



## Landei (30. Okt 2009)

Nebenbei: char[] x = { 'a', 'b', 'c', 'd', 'e', 'f' }; ist ziemlich umständlich, besser ist char[] x = "abcdef".toCharArray();


----------

