Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Classico esercizio universitario

    Salve a tutti mi sono proposto e non a caso un esercizio Java

    del tipo inserisci una stringa che contenga il proprio nome e cognome e visualizzi sul printStream le lettere che la compongono in ordine alfabetico.

    Ma come faccio:

    1 a definire che a<b<..<z avrei pernsato ad una classe privata che mi definisce quest'ordine tramite un vector e credo che potrebbe funzionare

    2 a suddividere la stringa in singole lettere soprattutto se io uso un ciclo

    while substring != NULL

    quando c'e lo spazio tra il nome ed il cognome come faccio a dirgli di proseguire?
    Ma perchè mi avete tolto oltre 400 messaggi?

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    basta che prendi il char dalla stringa i char in pratica sono numeri
    'a' < 'b' < 'c'....

  3. #3
    Scusa ma come faccio metti che io inserisco una String nome;
    nome = new String("Rinaldo Bonfanti");

    e poi?
    Ma perchè mi avete tolto oltre 400 messaggi?

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    for (int i=0; i<nome.length; i++) {
    nome.charAt(i) char nella posizione i
    }

  5. #5
    Ma se io uso il charAt(i)=a e charAt(i+1)=l
    allora posso tranquillamente scrivere if (charAt(i)<charAt(i+1))

    e questo mi restituisce un boolean true?
    Ma perchè mi avete tolto oltre 400 messaggi?

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    non è sbagliato ma esiste un modo più veloce e bello per lo stile

  7. #7
    Ovvero?

    allora io faccio un

    BufferedReader br = new BufferedReader(InputStreamReader isr = new InputStream(System.in);
    Vector v;
    String nome;
    nome = br.readLine();

    //e adesso mi trovo la sringa

    for (int i=0; i<nome.length; i++) {
    nome.charAt(i) //char nella posizione i
    if nome.charAt(i)<nome.charAt(i+1)

    //metodo per ordinare i valori in modo crescente?
    //e messi in un vector v

    }

    //adesso ho creato il vector che mi tiene le lettere in ordine
    //alfabetico

    for (int i=0; i<nome.length; i++) {
    String s = v.elementAt(i);
    systemOut.print(s);
    }

    così può andare?
    Ma perchè mi avete tolto oltre 400 messaggi?

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    non sbagli
    ma io :sexpulp: farei in un modo diverso
    farei un array di int
    int[] caratte = new int[26];
    for (int i=0; i<caratte.length; i++) {
    caratte[i] = 0;
    }
    adesso aggiungo uno alla pos dell'array uguale al char
    caratte[nome.toLowerCase().charAt(i)-97] += 1;
    si deve togliere 97 perchè 'a' = 97, porto a lowerCase per fare prima
    con qualche istruzione si riesce a gestire i caratteri maiuscoli e minuscoli
    conclusione stampo i char
    for (int i=0; <icaratte.length; i++) {
    System.out.println("Il carattere " + (char)(i+97) + " compare " + caratte[i] + " volte!");
    }
    :gren:

  9. #9
    si ma io li devo ordinare in ordine alfabetico quindi

    Rinaldo Bonfanti

    aabdfiilnnnoort

    scusa ma int[] = new int[26];

    cosa crea in array di int lungo 26 quindi gli indici da 0 a 25?
    Ma perchè mi avete tolto oltre 400 messaggi?

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    giusto
    for (int i=0; <icaratte.length; i++) {
    for (int j=0; j<caratte[i]; j++)
    System.out.print(caratte[i]);
    }

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.