Erste Schritte Zufallszahl in Ascii-Code umwandeln ?!?

poku17

Mitglied
Hallo, lerne erst seit kurzer zeit java und bin noch ganz am anfang...
Wie der Titel schon sagt weiss ich nicht wie ich ne Zufallszahl in Ascii-code umwandele...
mit Normalen Zahlen klappt es...aber bei random nicht...warum ???
Java:
public class Ascii_2
{

  public static void main(String[] args)
     {

      int zae = 0, konst = 3;
  
      for (int x = 0; x<konst; x++)
         {
         zae++;
         int zahl = (int)(1+Math.random()*256+(-1));  // Warum kann er diese Zahl nicht
         char ascii = (char) zahl ;                   // in den Ascii-Code Umwandeln ??
      
         int zahl2 = InOut.readInt(" Bitte Ascii-Wert eingeben : ");
         char ascii2 = (char) zahl2 ;     // Hier funktioniert es ...
     
         System.out.println(+ascii+" "+ascii2);

         }
     }
}

Danke schon mal für die Antwort ^^
 
Nein, die zufällig generierte Zahl wird nicht umgewandelt....und ganz normal ausgegeben... und ich verstehe einfach nicht warum ?!?^^

Also das hier funktioniert bei mir:

Java:
public class Ascii_2
{
 
  public static void main(String[] args)
     {
 
      int zae = 0, konst = 3;
  
      for (int x = 0; x<konst; x++)
         {
            zae++;
            int zahl = (int)(1+Math.random()*256+(-1));  // Warum kann er diese Zahl nicht
            char ascii = (char) zahl ;                   // in den Ascii-Code Umwandeln ??
     
            System.out.println( zahl + " = " + ascii);
         }
     }
}
 
Jo danke, dass funxt einzeln auch bei mir, wie ich eben festgestellt habe. ^^ Aber wenn ich den unteren teil wieder reinschreibe mit der eingabe der zahl, geht es nicht mehr...wüsste nur noch gerne warum das dann nicht geht ? ...um es auch verstehen zu können^^
 
Jo danke, dass funxt einzeln auch bei mir, wie ich eben festgestellt habe. ^^ Aber wenn ich den unteren teil wieder reinschreibe mit der eingabe der zahl, geht es nicht mehr...wüsste nur noch gerne warum das dann nicht geht ? ...um es auch verstehen zu können^^

Ach, fällt mir erst jetzt auf... Du schreibst:
Java:
   System.out.println( +ascii + " "+ascii2);
So wird offensichtlich das erste + als Vorzeichen von ascii interpretiert und dem entsprechend der Wert wieder in einen Integer gecastet.


Machst Du es so,
Java:
   System.out.println( "" + ascii + " " + ascii2 );

ist das ganze eine String-Verkettung und funktioniert wie gewünscht. 🙂
 

Zurück
Oben