Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225

    [JAVA] Estrazione casuale (random) da Array

    ho creato un array in cui sono contenute alcune frasi, e vorrei che da questo array fossere estratte a caso e visualizzate sullo schermo questa frasi (una alla volta).

    di seguito il codice

    codice:
    import java.util.*;
    public class class_name
    {
    
    static String [] frasi = {"Frase1", "Frase2", "Frase3", "Frase4"};
    
    
    
     public static void main (String[] args)
      {
    
       ...
    
      }
    
    }
    come posso fare a richiamare un metodo Math di modo da scegliere a caso la stringa da visualizzare?


    ringrazio chi potrà aiutarmi
    ...credi sia aria quella che stai respirando?

  2. #2
    Reale_Augello
    Guest

    Prova...

    ... così:

    codice:
    import java.util.*;
    public class class_name
    {
    
    static String [] frasi = {"Frase1", "Frase2", "Frase3", "Frase4"};
    Random rand = new Random();
    int casuale=rand.nextInt(frasi.length());
    
    
    public static void main (String[] args) {
    System.out.print(frasi[casuale]);
    }
    
    }
    Fammi sapere !

  3. #3
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225
    inanzitutto ti ringrazio per la disponibilità!

    Purtroppo in fase di compilazione, incontro 2 errori (vedi allegato).
    Immagini allegate Immagini allegate
    ...credi sia aria quella che stai respirando?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    length non è un metodo, ma una proprietà pubblica.
    Il codice corretto è questo:

    codice:
    import java.util.*;
    public class class_name
    {
    
    static String [] frasi = {"Frase1", "Frase2", "Frase3", "Frase4"};
    Random rand = new Random();
    int casuale=rand.nextInt(frasi.length);
    
    
    public static void main (String[] args) {
    System.out.print(frasi[casuale]);
    }
    
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    codice:
    import java.util.*;
    public class class_name
    {
    
    static String [] frasi = {"Frase1", "Frase2", "Frase3", "Frase4"};
    
    public static void main (String[] args) {
    while(true){
    try{
    	Thread.sleep(1500);
    	}catch(InterruptedException r){}
    int casuale=(int)(Math.random()*(frasi.length));
    System.out.print(frasi[casuale]);
    }
    }
    
    }
    Puoi fare anche in questo modo , sono equivalenti.

    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  6. #6
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225
    ragazzi grazie per i suggerimenti, ma ci sono 2 piccoli problemi:

    @ LeleFT > con la modifica da te suggerita il compilatore mi da un errore ed è il secondo dei 2 errori che mi dava in precedenza (vedi allegato del post precedente)

    @ Zero-2 > con la tua modifica invece il compilatore non da alcun errore, ma in esecuzione lancia i messaggi all'infinito, quando dovrebbe lanciarne solo uno, una sola volta.



    grazie per l'aiuto
    ...credi sia aria quella che stai respirando?

  7. #7
    Utente di HTML.it L'avatar di MOBILUK
    Registrato dal
    Apr 2001
    Messaggi
    225
    ragazzi ho risolto il problema!

    ecco il codice esatto:

    codice:
    import java.util.*;
    public class class_name
    {
    
    static String [] frasi = {"Frase1", "Frase2", "Frase3", "Frase4"};
    
    
    
    
    public static void main (String[] args)
    {
    
    
    
    Random rand = new Random();
    int casuale = rand.nextInt(frasi.length);
    
    
    
    System.out.println(frasi[casuale]);
    
    }
    
    }
    l'ogetto random la stringa della proprietà length dovevano essere spostati in public static void main invece che stare prima.


    Ora compila e gira corrattamente


    grazie ancora per l'aiuto
    ...credi sia aria quella che stai respirando?

  8. #8
    Era solo per fare un esempio e lanciare in maniera random in un esecuzione sola tutti i messaggi
    Basta eliminare il while come hai già fatto
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  9. #9
    Reale_Augello
    Guest

    ...

    Originariamente inviato da LeleFT
    length non è un metodo, ma una proprietà pubblica.
    Ops... lapsus !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.