Visualizzare tutte le lettere

di il
11 risposte

Visualizzare tutte le lettere

Scrivere un programma che legge una riga di testo che termina con un punto, che funge da valore sentinella.
visualizzare tutte le lettere presenti nel testo, una per riga e in ordine alfabetico,
indicando il numero di volte che si presenta nel testo. Utilizzare un array di tipo base int di lunghezza 21,
cosi che l'elemento all'indice 0 contenga il numero di lettere "a", l'elemento all'indice 1 contenga il numero
di lettere "b" e cosi via via ,considerare come input sia le lettere maiuscole, sia quelle minuscole ma poi nel conteggio
considerarle uguali.
Seguente codice che ho scritto..come posso fare per far uscire tutte le lettere nell'apposito indice?

public static void main(String[] args) {
Scanner tastiera = new Scanner(System.in);
int [] dimensione = new int[21];
char c = tastiera.next().charAt(0);
int risultato = trovaIndice(c);
System.out.println(risultato);
}
public static int trovaIndice(char in) {
int i = (int)in - (int)'a';
return i;
}

11 Risposte

  • Re: Visualizzare tutte le lettere

    Continui a postare tutto l'esercizio ma non si può discutere di tutto. La domanda specifica qual è?

    Con quel codice fai l'input di un solo carattere ma ti viene chiesto l'input di una riga terminata da un punto. Prima di tutto devi fare questo input.

    Tu hai le basi del linguaggio? Hai mai fatto esercizi più semplici? Altrimenti non potrai andare avanti
  • Re: Visualizzare tutte le lettere

    Fabrizio1993 ha scritto:


    int [] dimensione = new int[21];
    Le lettere ASCII sono 26. O le consideri tutte 26, oppure se vuoi considerare solo quelle italiane NON basta "scalare" il valore di 'a', perché in mezzo ci sono j k w x y e quindi servirebbe una mappatura specifica.

    Fabrizio1993 ha scritto:


    int i = (int)in - (int)'a';
    In Java per via della ben nota binary numeric promotion, a fronte di "un char meno un char", entrambi vengono implicitamente convertiti a int e il risultato è un int. In sostanza, quei cast NON servono:
    char a = 'a';
    char d = 'd';
    
    int offset = d - a;   // vale 3
  • Re: Visualizzare tutte le lettere

    Per far scrivere l'utente serve il tastiera.nextLine;
    se l'utente scrive " ciao vado a fare la spesa" , come faccio a far apparire che nell'indice 0 ci sono 5 'a', e via dicendo..a meno che non abbia capito l'esercizio...
    devo usare il ciclo for?
  • Re: Visualizzare tutte le lettere

    E magari farei attenzione anche al case...
  • Re: Visualizzare tutte le lettere

    Si ma il ciclo for con che lo faccia? mica posso fare la lunghezza del carattere...devo creare una variabile lunghezza ??
  • Re: Visualizzare tutte le lettere

    Non ha senso quello che ho detto..
  • Re: Visualizzare tutte le lettere

    Un ciclo va bene ma non un for. Rileggi nell'esercizio quando termina la stringa
  • Re: Visualizzare tutte le lettere

    While?
    Ho difficoltà nell'impostarlo però, una dritta?
  • Re: Visualizzare tutte le lettere

    Fabrizio1993 ha scritto:


    While?
    Ho difficoltà nell'impostarlo però, una dritta?
    No, basta anche un for:
    for (int i = 0; i < strInput.length(); i++) {
        char ch = strInput.charAt(i);
    
        // se ch è il punto, fai un break;
        // continua con il resto della logica
    }
  • Re: Visualizzare tutte le lettere

    Perfetto
    Poi la condizione if e il gioco è fatto
    Grazie mille
  • Re: Visualizzare tutte le lettere

    E se il punto non lo hai inserito?

    L'esercizio, dal punto di vista didattico, ti dice di attendere il punto quindi ci si attende che venga usato il while.
Devi accedere o registrarti per scrivere nel forum
11 risposte