Zufällige Buchstaben

JUser01

Mitglied
Hallo,

ich bin ein absoluter Einsteiger in Sachen Programmierung und damit auch in Java.

Ich wollte mal wissen, ob es eine !einfache! Methode für die Generierung von zufälligen Buchstaben gibt (sowie math.Random bei Zahlen).

Ich weiß, dass es schon einige Themen über das Thema gibt, jedoch war das immer ganz schön kompiliziert für Einsteiger.
 

stg

Top Contributor
Zum Beispiel so:
Java:
Random random = newRandom();
char c = (char) (random.nextInt(26)+'a');
c ist nun ein zufälliger Buchstabe im Bereich von a bis z
 

JUser01

Mitglied
Vielen Dank. Das ist mal kurz und präzise zum lernen.

Aber eine Frage noch: erkennt Java dann automatisch, dass die Buchstaben von A-Z gemeint sind? Du hast nirgends irgendwas von Z zu stehen.

Frage nur, damit ich es auch richtig verstehe.
 

Tarrew

Top Contributor
'a' hat den ASCII-Wert 97. Random.nextInt(26) gibt dir eine Zahl im Bereich von 0-25. Der maximale Wert den du kriegen kannst ist also 97+25=122. Und 122 ist der ASCII-Wert für 'z'. Und dazwischen liegen die anderen Buchstaben.
Die Großbuchstaben haben ASCII-Werte von 65 bis 90, falls du die auch irgendwie verwenden willst.
 

JUser01

Mitglied
Ja wollte ich. Ersetze ich dann einfach (in dem Quellcode) die 26 durch die 90 und erhalte dann Groß- und Kleinbuchstaben?

Super Erklärung. Vielen Dank.
 
Zuletzt bearbeitet:

Tarrew

Top Contributor
Wenn du die 26 durch die 90 ersetzt erhältst du ASCII-Werte zwischen 97 und 186. Und in dem Bereich liegen deine Großbuchstaben ja nicht.

Sowas würde gehen:
Java:
char c = random.nextInt(2) == 1 ? (char)(random.nextInt(26)+'a') : (char)(random.nextInt(26)+'A');
Man kriegt zuerst eine zufällige Zahl die entweder 0 oder 1 ist. Wenn es eine 1 ist dann wird ein zufälliger Kleinbuchstabe generiert und sonst ein Großbuchstabe.
 

Tarrew

Top Contributor
Danke, dann wäre es so besser:
Java:
char c = random.nextBoolean() ? (char)(random.nextInt(26)+'a') : (char)(random.nextInt(26)+'A');
 

JStein52

Top Contributor
Java:
char c = random.nextBoolean() ? (char)(random.nextInt(26)+'a') : (char)(random.nextInt(26)+'A');

ist die verkürzte Schreibeweise für:

Java:
char c;
if (random.nextBoolean() == true)
   c = (char)(random.nextInt(26)+'a');
else
   c =  (char)(random.nextInt(26)+'A');
 

JStein52

Top Contributor
int nextInt( int range ) Liefert eine int-Pseudo-Zufallszahl im Bereich von 0 bis range.

So stehts zumindest in Java ist auch eine Insel. Ich glaube aber es muss heissen:

int nextInt( int range ) Liefert eine int-Pseudo-Zufallszahl im Bereich von 0 bis range-1 .
 
Zuletzt bearbeitet:

JUser01

Mitglied
Ok,

habe gerade den Code mal im Programm eingeben. Es kommt nur eine Fehlermeldung. Muss ich noch irgendetwas importieren oder so?

Ich weiß es sind viele dumme Fragen..
 

JUser01

Mitglied
Java:
import java.util.Random;


public class ZufallsBuchstabe {

    public static void main(String[] args) {
   
       
        Random random = newRandom;
       
        char c = random.nextBoolean() ? (char)(random.nextInt(26)+'a') : (char)(random.nextInt(26)+'A');
       

    }

}

Als Fehler zeigt er an: "newRandom cannot be resolved to a variable"

Stelle mich wahrscheinlich zu doof an.
 

JUser01

Mitglied
Zur Vollständigkeit:
Welche Zahl muss ich bei der "26" eingeben, um ein zufälliges Sonderzeichen zu erhalten, bzw. was muss ich allgemein ändern?
 

Tarrew

Top Contributor
Die Zahlen ergeben sich aus Start und Endwert.
'a' hat den Wert 97 und das Alphabet hat 26 Buchstaben. Deswegen die 26.

Du kannst dir ja mal eine ASCII Tabelle angucken und gucken in welchem Bereich deine gewünschten Sonderzeichen liegen. Wenn die jetzt weit verstreut auseinander liegen kannste die vermutlich besser in ein Array einfügen und dann ein zufälliges Element des Arrays auswählen.
 

JUser01

Mitglied
Habe die Zahlen jetzt eingetragen. Wird sehr wahrscheinlich falsch sein, aber es kommen Zeiche bei raus. Leider auch Buchstaben.

Java:
Random random = new Random();
       
        char c = random.nextBoolean() ? (char)(random.nextInt(58)+':') : (char)(random.nextInt(64)+'@');
       
        System.out.println(c);
 

JStein52

Top Contributor
Es kommen jetzt ab dem ":" die naechsten 58 Zeichen und ab dem "@" die naechsten 64 Zeichen. Ich glaube das wolltest du nicht :):):)
 
Zuletzt bearbeitet:

Tarrew

Top Contributor
Java:
char a = (char)(random.nextInt(7)+':');

Du solltest dir nochmal genau angucken was bei deinen Code rauskommt.
random.nextInt(58) gibt dir Zahlen zwischen 0-57 und darauf addierst du dann immer ':' (58).

Also kriegst du für "(char)(random.nextInt(58)+':')" Werte im Bereich von 58-115.
 

JUser01

Mitglied
Das glaube ich auch..;)

Wenn ich das folgende eingebe, zeigt er mir den Fehler "Syntax error, ": Expression to complete Expression"

Java:
Random random = new Random();
       
        char c = random.nextBoolean() ? (char)(random.nextInt(6)+':');
       
        System.out.println(c);
 

JStein52

Top Contributor
Ja, du kannst dir in dem Fall das mit dem nextBoolean usw. schenken weil du ja nur Zeichen aus einem einzigen Intervall haben willst. Machs mal so wie @Tarrew vorgeschlagen hat.

Nur zu deinem Verständnis: das mit dem nextBoolean diente mal dazu zunächst auszuwählen ob du Gross- oder Kleinbuchstaben haben willst, der Rest dann dazu irgendeinen Wert aus einem der beiden Intervalle rauszusuchen.
 

JUser01

Mitglied
Ok hat geklappt, danke!

Wo wir schon bei Zufällen sind, gibt es eine Möglichkeit (für Anfänger), Werte zufällig auszugeben. Also wenn ich zum Beispiel 4 Integer habe und die immer wieder in verschiedenen Reihenfolgen auszugeben?

Ich weiß, dass es nicht mehr zur Überschrift passt.
 

JStein52

Top Contributor
Und wenn du dann am Ende alles zusammen haben willst dann würfelst du zunächst eine Zahl von 0 .. 2 die dann eines der 3 Intervalle festlegt. Und anschliessend (d.h. mit entsprechenden if oder switch - Anweisungen) würfelst du eine Zahl aus dem jeweiligen Intervall.
 

JStein52

Top Contributor
Ja, klar. Du schreibst diese 4 Werte in ein int[4] - Array und würfelst einen Index zwischen 0 .. 3 und gibst den Inhalt des Arrays an dieser Stelle aus !!
 

JStein52

Top Contributor
So etwa:

Java:
Random random = new Random();
int[] zahlen = {3,6,4,18};
     
        int index  = random.nextInt(3);
     
        System.out.println(zahlen[index]);

Das gibt dir eine der Zahlen 3,6,4,18 zufällig aus. du kannst jetzt eine Schleife drumrum machen und kriegst diese 4 Zahlen dann zufällig ausgegeben
 

JStein52

Top Contributor
Du hast recht das muss eine 4 sein !! Das steht für eine Zufallszahl von 0 .. 3 !!

nextInt(number) liefert eine Zufallszahl von 0 .. number-1
 

Tarrew

Top Contributor
Musst zu dem Array halt eine 5. Zahl hinzufügen.

Oder willst du allgemein nur 5 zufällige Zahlen ausgeben? Also 5 Zahlen aus dem Bereich 0- 10.000 oder so?
 

JStein52

Top Contributor
Du kannst es so machen, dann passt es immer:

Java:
Random random = new Random();
int[] zahlen = {3,6,4,18};
    
        int index  = random.nextInt(zahlen.length);
    
        System.out.println(zahlen[index]);

Und wenn du jetzt in das zahlen-array mehr Zahlen in die geschweiften Klammern schreibst stimmt es immer
 

JUser01

Mitglied
Ok. Und kann ich die Zahlen auch durch Variablen ersetzen? Also wenn zum Beispiel der Benutzer etwas eingeben soll und diese Zahlen dann zufällig ausgeben werden sollen.
 

Thallius

Top Contributor
An dieser Stelle möchte ich doch mal darauf verweisen, dass es auch sowas wie Grundlagenwissen gibt, dass man sich auch selbständig aneigenen kann. Dafür gibt es Bücher (Diese Dinger aus viel Papier die man aufklappen und umblättern kann) oder auch Internet-Tutorials oder sogar Videos falls das Lesen schwer fällt.

Gruß

Claus
 

JStein52

Top Contributor
:):):) Ja klar. Du musst dieses zahlen-array ja nicht per Initialisierung mit Werten füllen so wie ich es gemacht habe. Du kannst natürlich auch Zahlen von der Konsole einlesen und diese Werte in das Array schreiben. Und anschliessend einen Index in diesem Array würfeln.

Java:
Random random = new Random();
int[] zahlen = new int[4];

        // hier liest du jetzt Zahlen von der Konsole ein und
        // schreibst sie in das array
        int i = 0;
        while (benutzer gibt eine Zahl ein) {
              zahlen[i++] = benutzerzahl;
        }
  
        int index  = random.nextInt(zahlen.length);
  
        System.out.println(zahlen[index]);

Achtung: das ist nur rudimentärer Code. Du musst dir überlegen wieviele Zahlen du einlesen willst und das Array entsprechend gross machen. Oder mit einer Integer-Liste arbeiten zu der du Werte hinzufügst.
Das oben ist nur ein Denkanstoss
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Datentypen Zufällige Buchstaben vertauschen Java Basics - Anfänger-Themen 3
G Zufällige Buchstaben in char-Array Java Basics - Anfänger-Themen 9
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
J Zufällige Spielerreihenfolge Java Basics - Anfänger-Themen 6
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
L Zufällige Übereinstimmungen in 2 Arrays Java Basics - Anfänger-Themen 3
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
T Zufällige Matrix in neue Matrix schreiben Java Basics - Anfänger-Themen 6
W Wie kann man zufällige Anordnungen machen? Java Basics - Anfänger-Themen 1
F zufällige Zahlenfolge Java Basics - Anfänger-Themen 8
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
E Erste Schritte Memorie zufällige Pärchen mischen Java Basics - Anfänger-Themen 6
J Zufällige Bewegung Java Basics - Anfänger-Themen 25
R Zufällige Abfolge Java Basics - Anfänger-Themen 5
E Variablen Zufällige Boolschevariable erzeugen Java Basics - Anfänger-Themen 4
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
B Zufällige Zahlen in Array sortieren Java Basics - Anfänger-Themen 18
B "Zufällige" Newlines in Process.getErrorStream Java Basics - Anfänger-Themen 5
M Zufällige Position Java Basics - Anfänger-Themen 3
B zwei zufällige elemente aus array lesen und überprüfen Java Basics - Anfänger-Themen 8
TheKing Zufällige Plattformen Java Basics - Anfänger-Themen 5
M zufällige auswahl eines Panels aus Grid Layout Java Basics - Anfänger-Themen 3
G Zufällige Zahlen Java Basics - Anfänger-Themen 13
S Zufällige Farbe Java Basics - Anfänger-Themen 5
G zufällige zahlen von x bis y generieren Java Basics - Anfänger-Themen 5
H Aus 5 Zahlen eine zufällige Kombination erzeugen,ohne doppel Java Basics - Anfänger-Themen 2
B Memory - Zufällige Anordnung von Buchstabenpaaren Java Basics - Anfänger-Themen 8
M Zufällige Zeile aus einer Datei lesen Java Basics - Anfänger-Themen 2
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
L Buchstaben entfernen zipZap Java Basics - Anfänger-Themen 8
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
H Buchstaben zählen Java Basics - Anfänger-Themen 9
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Tom/S KeyCode zu Buchstaben Java Basics - Anfänger-Themen 0
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
J Buchstaben aus textArea extrahieren Java Basics - Anfänger-Themen 4
S Buchstaben in Großbuchstaben (Strings) Java Basics - Anfänger-Themen 5
O FilterStream häufigkeit der Buchstaben Java Basics - Anfänger-Themen 43
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
A Erste Schritte Buchstaben im Array suchen Java Basics - Anfänger-Themen 8
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
x-tshainge Zahlen Buchstaben zuordnen Java Basics - Anfänger-Themen 4
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
M replace Methode für Buchstaben Java Basics - Anfänger-Themen 29
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
J Methoden Eingabe Methode nur Buchstaben Java Basics - Anfänger-Themen 4
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
C Klassen Positionszähler auf Buchstaben setzen Java Basics - Anfänger-Themen 14
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
S Input/Output Buchstaben in Eingabe finden und ausgeben Java Basics - Anfänger-Themen 5
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
Bregedur String beim nächstem groß geschriebenen Buchstaben trennen Java Basics - Anfänger-Themen 1
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
F Häufigkeit von Buchstaben Java Basics - Anfänger-Themen 7
L Java Strings Buchstaben vertauschen Java Basics - Anfänger-Themen 4
G Erste Schritte Einen Array absuchen und Buchstaben zählen Java Basics - Anfänger-Themen 17
I Programm, welches eine Textzeile einliest und alle darin enthaltenen Buchstaben umwandelt Java Basics - Anfänger-Themen 3
S String ab dem Wechsel Buchstaben zu Zahlen splitten Java Basics - Anfänger-Themen 14
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
S Einzelne Buchstaben aus Jtextfield in array Java Basics - Anfänger-Themen 2
A OOP Buchstaben mit ASCII Werten darstellen Java Basics - Anfänger-Themen 1
M String überprüfen ob nur Buchstaben enthalten sind? Java Basics - Anfänger-Themen 10
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
B Zahlen und Buchstaben in cmd eingeben Java Basics - Anfänger-Themen 5
J Buchstaben aus String einzeln Zählen Java Basics - Anfänger-Themen 12
S nur Buchstaben in JTextField Java Basics - Anfänger-Themen 3
X String einzelne Buchstaben ersetzen Java Basics - Anfänger-Themen 4
A Erste Schritte Datei einlesen und Buchstaben zählen Java Basics - Anfänger-Themen 13
V Zufallsgenerator für Buchstaben Java Basics - Anfänger-Themen 22
A Erste Schritte konsoleneingabe von Buchstaben Java Basics - Anfänger-Themen 3
M Von File lesen Buchstaben lesen und zählen - scheitert an der Eingabe Java Basics - Anfänger-Themen 4
K Methoden Kontrollstruktur versagt bei Buchstaben... Java Basics - Anfänger-Themen 6
E Buchstaben nach Größe vergleichen Java Basics - Anfänger-Themen 4
M Benennung nach Buchstaben Java Basics - Anfänger-Themen 18
M Erste Schritte zwei Buchstaben die im String enthalten sind ausgeben Java Basics - Anfänger-Themen 21
J Programm zum Buchstaben austauschen, logikproblem Java Basics - Anfänger-Themen 2
T keine buchstaben!nur zahlen eingabe möglich Java Basics - Anfänger-Themen 48
P toUpperCase() - Buchstaben die ersetzt werden als Großbuchstaben ausgeben Java Basics - Anfänger-Themen 5
R Regexp nur Buchstaben und Ziffener beliebig oft Java Basics - Anfänger-Themen 3
S Buchstaben/Wörter im String zählen Java Basics - Anfänger-Themen 6
R buchstaben einlesen - fehlermeldung schreiben? Java Basics - Anfänger-Themen 9
M String (mit Buchstaben) zu Int Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben