Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    In questo modo però stampi la stringa al contrario ma non la salvi da nessuna parte (e l'esercizio mi pare chieda di creare una nuova stringa con l'originale al rovescio.)

    Ah, il for più esterno lo puoi trasformare in un for-each, per maggior chiarezza.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    3
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    In questo modo però stampi la stringa al contrario ma non la salvi da nessuna parte (e l'esercizio mi pare chieda di creare una nuova stringa con l'originale al rovescio.)

    Ah, il for più esterno lo puoi trasformare in un for-each, per maggior chiarezza.
    Si in effetti hai ragione, solo che non ricordo il testo preciso

    EDIT:
    codice:
    String stringaDaInvertire ="animale";
    ........ //le altre stringhe
    StringBuilder invertita =new StringBuilder();
    
    for(int i=0; i<stringaDaInvertire.length(); i++){
    invertita.insert(0, stringaDaInvertire.charAt(i));
    }
    ........... //medesimo procedimento per le altre stringhe
    
    System.out.println( invertita );


    In questo modo però alla fine mi stampa, "ocrap atibib elamina" invece di "elamina atibib ocrap"
    Ultima modifica di GrayFin; 31-01-2014 a 17:46

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Quote Originariamente inviata da GrayFin Visualizza il messaggio
    Si in effetti hai ragione, solo che non ricordo il testo preciso

    EDIT:
    codice:
    String stringaDaInvertire ="animale";
    ........ //le altre stringhe
    StringBuilder invertita =new StringBuilder();
    
    for(int i=0; i<stringaDaInvertire.length(); i++){
    invertita.insert(0, stringaDaInvertire.charAt(i));
    }
    ........... //medesimo procedimento per le altre stringhe
    
    System.out.println( invertita );


    In questo modo però alla fine mi stampa, "ocrap atibib elamina" invece di "elamina atibib ocrap"
    Beh... l'esempio che ti avevo postato io con lo StringBuilder era per una sola stringa... ovviamente, per ciascuna stringa lo StringBuilder va ricreato (o, meglio, svuotato)

    Se vuoi avere tutte le stringhe invertite, ma stampate nell'ordine, devi avere uno StringBuilder dove andrai a fare ciascuna inversione e uno StringBuilder dove andrai, di volta in volta, a concatenare tutte le inversioni per il risultato finale:

    codice:
    String[] stringhe = {"Ciao", "Pippo", "Pluto"};
    StringBuilder risultatoFinale = new StringBuilder();
    StringBuilder invertita = new StringBuilder();
    for(String s : stringhe) {
       // Svuotiamo il buffer
       invertita.setLength( 0 );
    
       // Invertiamo la stringa
       for(int i=0; i<s.length(); i++) {
          invertita.insert(0, s.charAt(i));
       }
    
       // Aggiungo al risultato finale
       risultatoFinale.append( invertita ).append(" ");
    }
    
    System.out.println( risultatoFinale );

    Se, invece, ciascuna inversione la devi anche salvare, allora...

    codice:
    String[] stringhe = {"Ciao", "Pippo", "Pluto"};
    ArrayList<String> risultatoFinale = new ArrayList<String>();
    StringBuilder invertita = new StringBuilder();
    for(String s : stringhe) {
       // Svuotiamo il buffer
       invertita.setLength( 0 );
    
       // Invertiamo la stringa
       for(int i=0; i<s.length(); i++) {
          invertita.insert(0, s.charAt(i));
       }
    
       // Aggiungo al risultato finale
       risultatoFinale.add( invertita.toString() );
    }
    
    for(String s : risultatoFinale) {
       System.out.println( s );
    }

    Ciao.
    Ultima modifica di LeleFT; 31-01-2014 a 17:59
    "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 © 2026 vBulletin Solutions, Inc. All rights reserved.