Zufalls Strings erzeugen

Status
Nicht offen für weitere Antworten.

steve77

Bekanntes Mitglied
Hallo Leute, ich möchte mir eine bestimmte Anzahl von Zufallstrings generieren lassen,weiss aber nicht genau wie ich das bewerkstelligen. Zufallszahlen zu generieren ist kein Problem, baer Strings bereiten mir da schon größere Probleme. Kann mir da jemand helfen, vielen dank!!!

Die Strings sollten folgendes aussehen haben:
1. String: 299234diejdjcdcn9843984dji49rd
2. String: 3940349ediodke09340edoieodi030
....
usw...


Gruß

stefan
 

fapsons

Mitglied
Na wenn du schon weißt, wie du Zufallszahlen generierst, dann fehlt dir ja nicht mehr viel.
Ich würde ne Zahl im Bereich zwischen 30 und 122 als Zufallszahl generieren. Das sind im ASCII-Code alle Buchstaben, Ziffern und Zeichen.


Kein tolles Bsp. müsste aber funktionieren...

Code:
private String erzeugeZufallsString(int len) {
 String erg = ""; 
 for(int i = 0; i < len; i++) {
    erg += (char)erzeugZufallswert();
 }
 return erg;
}

private int erzeugZufallswert() {
   return ... erzeug an dieser Stelle einen int zwischen 30..122;
}
 

xysawq

Bekanntes Mitglied
Also das mit der UUID finde ich geht am Thema vorbei.

Es wird zwar ein String erstellt, aber so kann ich auch gleich ein int mit valueOf(...) in einen String wandeln.

Da gefällt mir fapsons Methode wesentlich besser (auch wenn die Zeichen bei 33 beginnen und er nur Zahlen und Buchstaben haben will):

Code:
import java.util.Random;

...

private String erzeugeZufallsString(int len)
{
	String erg = "";
	
	for(int i = 0; i < len; i++)
	{
		erg += erzeugeZufallsChar();
	}
	return erg;
} 

private char erzeugeZufallsChar()
{
	Random rand = new Random();
	int temp = rand.nextInt(62); //Weil es unter Zahlen und Buchstaben 62 verschiedene gibt.
	
	if(temp < 10)
	{
		return (char)(temp + 48); //Die Ziffern beginnen bei 48.
	}
	if(temp < 36)
	{
		return (char)(temp + 65); //Die Großbuchstaben beginnen bei 65;
	}
	if(temp < 62)
	{
		return (char)(temp + 97); //Die Kleinbuchstaben beginnen bei 97.
	}
	
	return 0;
}

So würdest du nur Zahlen und Buchstaben erstellen.

Um einen 30-Zeichen-langen String zu erstellen dann also einfach nur:

Code:
String string1 = erzeugeZufallsString(30);
String string2 = erzeugeZufallsString(30);

... usw.
 

xysawq

Bekanntes Mitglied
Für alle, die es noch nicht vergessen haben, habs jetzt selber gebraucht und gemerkt, dass meine Methode nicht funktioniert.

Deshalb hab ich sie verbessert bzw. zum Laufen gebracht:

Code:
import java.util.Random;

public class RandomString
{

	public String createRandomString(int length)
	{
		String erg = "";
	   
		for(int i = 0; i < length; i++)
		{
			erg += createRandomChar();
		}
		return erg;
	}
	
	public char createRandomChar()
	{
		Random rand = new Random();
		int temp = rand.nextInt(62); //Weil es unter Zahlen und Buchstaben 62 verschiedene gibt.
		 
		if(temp < 10)
		{
			return (char)(temp + 48); //Die Ziffern beginnen bei 48.
		}
		if(temp < 36)
		{
			return (char)((temp-10) + 65); //Die Großbuchstaben beginnen bei 65;
		}
		if(temp < 62)
		{
			return (char)((temp-36) + 97); //Die Kleinbuchstaben beginnen bei 97.
		}

		return 0;
	}
}

Ist mehrfach getestet und funktioniert.

Man kann damit Zufalls-Strings und einzelne Zufalls-Chars erstellen.
 

ill_nin0

Neues Mitglied
ich glaube so ist besser
Code:
   public String createRandomString(int length) 
   { 
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < i; j++) {
                sb.append(createRandomChar());
            }
           return sb.toString(); 
   }

weil mit + zeichen du generierst immer neue String Objecte
und mit StringBuilder die programm ist kleiner und läuft schneller
 
S

SlaterB

Gast
> die programm ist kleiner

naja, also vom Code her höchstens, weil du eine Leerzeile wegläßt ;)
aber auf jeden Fall ne sinnvolle Sache zum Üben, gleich richtig machen
 

ill_nin0

Neues Mitglied
na ja ich denke,dass es nicht richtig ist, das Zeichen "+" für Strings in einer for-Schleife zu nutzen.Mit StringBuilder geht es viel viel schneller.
probiere es,wenn du willst,mit diesen beiden Funktionen
Code:
public class test{
	public static void main(String[] args){                                
		String str1 = "a";
                                long start = System.currentTimeMillis();
		System.out.println(probe1(str1,100000));
		long end = System.currentTimeMillis();
		System.out.println(""+(end-start)/1000.0);
	}

	private static int probe1(String str,int i) {
		for (int j = 0; j < i; j++) {
			str+= "a";
		}
		return str.length();
	}
	private static int probe2(String str,int i){
		StringBuilder sb = new StringBuilder(str);
		for (int j = 0; j < i; j++) {
			sb.append("a");
		}
		return sb.length();
	}
}

mit der Esrte habe ich 84.953 Sekunden gewartet und mit der Zweite nur 0.015, alse 5663 mal schneller :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
JavaBeginner22 Java 2 Zufalls zahlen generieren. Java Basics - Anfänger-Themen 11
G Zufalls Array summieren Java Basics - Anfänger-Themen 12
3 Zufalls-Zahlen aus ArrayList generieren & auslesen Java Basics - Anfänger-Themen 6
O Java Zufalls-Verteil-Algorithmus Java Basics - Anfänger-Themen 3
R Zufalls String mit Vorgaben Java Basics - Anfänger-Themen 2
Luk10 Bestimmung eines (Zufalls)Ereignis Java Basics - Anfänger-Themen 10
T Zufalls jedoch jede nur einmal Java Basics - Anfänger-Themen 10
G Zufalls Animation Java Basics - Anfänger-Themen 9
apple987123 Zufalls Ratezahl Java Basics - Anfänger-Themen 16
G Zufalls Lotto Zahlen Ausgeben Java Basics - Anfänger-Themen 16
G Zufalls werte erhalten Java Basics - Anfänger-Themen 9
H zufalls string und zahl erzeugen Java Basics - Anfänger-Themen 14
W Gleichzeitiges ersetzen mehrerer Strings Java Basics - Anfänger-Themen 7
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
N Nachkommastellen von Strings Java Basics - Anfänger-Themen 3
T Strings unveränderlich???? Java Basics - Anfänger-Themen 22
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
S Die durchschnittliche Länge der Strings Java Basics - Anfänger-Themen 11
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
sserio StringBuilder und Strings Java Basics - Anfänger-Themen 8
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
N Strings verpflechten Java Basics - Anfänger-Themen 4
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
L Strings aneinanderhängen Java Basics - Anfänger-Themen 2
M Strings vergleichen Java Basics - Anfänger-Themen 10
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
C Ternärer Operator mit Strings Java Basics - Anfänger-Themen 3
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
P Verketten, Aneinanderreihen von Strings Java Basics - Anfänger-Themen 2
M Strings mit gerader und ungerader Länge ausgeben Java Basics - Anfänger-Themen 10
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
W Strings und das parsen Java Basics - Anfänger-Themen 8
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
D Vergleichen von Strings Java Basics - Anfänger-Themen 6
M Konkatenation von zwei Strings Java Basics - Anfänger-Themen 6
J Abbruchbedingung in Schleife/ Untersuchung von Strings Java Basics - Anfänger-Themen 2
S Buchstaben in Großbuchstaben (Strings) Java Basics - Anfänger-Themen 5
X Anagramm mit Strings und Methode Java Basics - Anfänger-Themen 53
P geschachtelte Schleife mit Strings Java Basics - Anfänger-Themen 2
P Strings mit der Axt zerteilen Java Basics - Anfänger-Themen 7
F Alle Zeichenkombinationen eines Strings iterativ herausfinden Java Basics - Anfänger-Themen 26
K Strings hochzählen Java Basics - Anfänger-Themen 20
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
J Unveränderbarkeit von Strings Java Basics - Anfänger-Themen 3
O Klammerung bei Strings Java Basics - Anfänger-Themen 10
A Liste aus drei Strings erstellen Java Basics - Anfänger-Themen 5
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
G Teil(e) eines Strings entfernen wenn spezifische Zeichen (< & >) vorkommen Java Basics - Anfänger-Themen 5
D ergebnis.matches("[1-9]?[0-9].[0-9][0-9]?") ein teil eines größeren Strings Java Basics - Anfänger-Themen 12
J Breite eines Strings bestimmen Java Basics - Anfänger-Themen 4
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
N Vergleich von Strings schlägt fehl.. Java Basics - Anfänger-Themen 5
B 4 Strings, Anfangsbuchstaben muss unterschiedlich sein Java Basics - Anfänger-Themen 12
P Strings in String Array schreiben Java Basics - Anfänger-Themen 13
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
B mir nur die Gesamtzahl von einzigartigen Strings aus Array ausgeben lassen Java Basics - Anfänger-Themen 5
R Erste Schritte Sicheres einlesen eines Strings Java Basics - Anfänger-Themen 2
F Maximale Länge eines Strings Java Basics - Anfänger-Themen 5
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
Jinnai4 Strings ersetzen Java Basics - Anfänger-Themen 9
R Übergeben eines Array Strings an einen Spinner Java Basics - Anfänger-Themen 4
L Rekursiv zwei Strings vergleichen Java Basics - Anfänger-Themen 3
L Prüfe, ob die im String Array enthaltenen Strings aufsteigend sind. Java Basics - Anfänger-Themen 19
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
C 2 Strings Java Basics - Anfänger-Themen 15
T befehle unterschiedlicher anzahl an strings wiedergeben Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Strings in andere Klassen importieren. Java Basics - Anfänger-Themen 2
D BlueJ Java: Strings voneinander trennen Java Basics - Anfänger-Themen 11
javaerd Wie kann ich Brute Force Methode mit Strings erweitern Java Basics - Anfänger-Themen 1
R Erste Schritte Strings "einrücken" Java Basics - Anfänger-Themen 3
Yamie ArrayList<Object> als Liste von Strings ausgeben? Java Basics - Anfänger-Themen 15
B gemeinsames Vorkommen der charactere von 2 Strings als String zurückgeben Java Basics - Anfänger-Themen 5
R Teilinhalt eines Strings testen Java Basics - Anfänger-Themen 10
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
L Werte von Strings ? Java Basics - Anfänger-Themen 1
L Strings und Arrays - Expand Java Basics - Anfänger-Themen 12
I Schachbrett aus beliebigen Strings erstellen Java Basics - Anfänger-Themen 3
Syncopated Pandemonium Verketten von Strings funktioniert nicht Java Basics - Anfänger-Themen 4
F Wahrscheinlichkeit von Strings Java Basics - Anfänger-Themen 3
MiMa Splitten eines Strings Java Basics - Anfänger-Themen 5
T Hashfunktion für Strings Java Basics - Anfänger-Themen 3
C Zeilenumbruch für langes Strings Java Basics - Anfänger-Themen 2
J Variablen Strings mit Zeilenumbrüchen in neues Array Element Java Basics - Anfänger-Themen 1
T Datentypen compareTo() u. equals() bei Strings Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben