Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Caratteri random

  1. #1

    Caratteri random

    Ciao a tutti ragazzi, volevo sapere come faccio a generare random i primi 8 caratteri dell'alfabeto?

    Io avevo pensato:
    codice:
    char c = (char)((int) Math.random() * cosa devo mettere?) + cosa devo mettere?
    Il mio sito: Home

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ti consiglio di usare direttamente la classe Random, al posto del metodo random() di Math (si può fare lo stesso, ma tale metodo ritorna un valore double compreso fra 0.0 incluso e 1.0 escluso e si dovrebbe usare del lavoro in più per ricondurre tale valore ad un range intero).

    Come si fa con la classe Random:

    1) Si crea un oggetto Random
    2) Si usa il metodo nextInt(int val), in modo da genenare un numero intero compreso fra 0 e (val - 1)
    3) Si prende tale valore e lo si "mappa" (ovvero, lo si trasla) sul range dei codici ASCII dei primi 8 caratteri (da 65 in poi)
    4) Ottengo il char

    codice:
    // 1) Creo un oggetto Random
    Random r = new Random();
    
    // 2) Uso nextInt per ottenere un numero fra 0 e 7
    int numero = r.nextInt( 8 );
    
    // 3) Mappo (traslo) il valore sul range ASCII
    numero += 65;
    
    // 4) Ottengo il char
    char c = (char) numero;
    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

  3. #3
    ok ma se devo generare più caratteri random, devo creare più oggetti random giusto?
    Il mio sito: Home

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da matpark
    ok ma se devo generare più caratteri random, devo creare più oggetti random giusto?
    No. L'oggetto Random va creato una sola volta all'inizio e, semmai, chiamerai più volte il metodo nextInt() per ottenere ogni volta un numero random.


    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

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.