Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    81

    array composto da simboli

    salve a tutti.
    Ho questo tipo di problema: sto provando ad implementare un metodo per inserire all'interno di un array dei simboli in maniera casuale preso da un altro array.
    Qualcuno sa dirmi come posso fare per far accettare i simboli al compilatore java? Si accettano anche consigli per quanto riguarda la scrittura del metodo in quanto ho appena iniziato a programmare in java e sicuramente avrò scritto fesserie.

    codice:
    public ArrayList<String> generaSequenza()     {
             String [] listaSimboli = {"#", "*", "$", "§", "£", "€"};
             String [] sequenza = new String[3];
             Random rand = new Random();
             for(int i=0; i<sequenza.length; i++)
                {
                    sequenza[i] = rand.nextInt(listaSimboli.length);                
                }
             return sequenza;         
         }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da simo9115 Visualizza il messaggio
    codice:
                    sequenza[i] = rand.nextInt(listaSimboli.length);
    Questo ovviamente no. A sinistra del = l'espressione risulta in un String mentre a destra del = fornisci un int.
    Il risultato del nextInt è semplicemente l'indice da usare in listaSimboli.

    Quindi:

    codice:
    for (int i=0; i<sequenza.length; i++) {
        int indice = rand.nextInt(listaSimboli.length);
        sequenza[i] = listaSimboli[indice];                
    }

    Che se vuoi puoi anche abbreviarla in 1 istruzione ma l'ho scritta così per leggibilità.

    Inoltre il metodo dichiara come ritorno un ArrayList<String> mentre sequenza è un String[]. O cambi il tipo di ritorno o costruisci il ArrayList dal String[] o riempi direttamente un ArrayList.
    Ultima modifica di andbin; 29-10-2015 a 18:52
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    81
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Questo ovviamente no. A sinistra del = l'espressione risulta in un String mentre a destra del = fornisci un int.
    Il risultato del nextInt è semplicemente l'indice da usare in listaSimboli.

    Quindi:

    codice:
    for (int i=0; i<sequenza.length; i++) {
        int indice = rand.nextInt(listaSimboli.length);
        sequenza[i] = listaSimboli[indice];                
    }

    Che se vuoi puoi anche abbreviarla in 1 istruzione ma l'ho scritta così per leggibilità.

    Inoltre il metodo dichiara come ritorno un ArrayList<String> mentre sequenza è un String[]. O cambi il tipo di ritorno o costruisci il ArrayList dal String[] o riempi direttamente un ArrayList.
    innanzitutto grazie mille dell'aiuto
    Ultima modifica di simo9115; 29-10-2015 a 19:22

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da simo9115 Visualizza il messaggio
    non ne ho chiare neanche una...ti dispiacerebbe spiegarmene una? magara la + semplice. grazie ancora
    Abbozzati:

    a) Nel metodo sequenza è un String[]. Puoi quindi far ritornare questo:

    public String[] generaSequenza()

    Stop, sarà il chiamante a farne quello che gli pare dell'array.

    b)
    codice:
    public List<String> generaSequenza() {
      ......
        String[] sequenza = new String[3];
      ......
    
        return Arrays.asList(sequenza);
    }

    Arrays è java.util.Arrays. La caratteristica di asList è che restituisce un List (nota NON un ArrayList) che incapsula e accede all'array e pertanto è mutabile come dati ma NON è espandibile/restringibile.

    c)
    codice:
    public ArrayList<String> generaSequenza() {
      ......
        ArrayList<String> sequenza = new ArrayList<String>();
      ......
        for(int i=0; i<3; i++) {
            .....
            sequenza.add( ..... );
        }
      
        return sequenza;
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    81
    grazie lo stesso avevo risolto proprio come mi avevi detto te mentro mi mandavi il messaggio grazie mille

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 © 2025 vBulletin Solutions, Inc. All rights reserved.