Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Quote Originariamente inviata da andrewver Visualizza il messaggio
    Ciao! Sono alle prime armi con Java e dovrei svolgere il seguente esercizio:

    /* Scrivere un metodo che riceve tre stringhe e le stampa in verticale una accanto all’altra
    Ad esempio: date “ciao”, “buondì”, “hello”, stampa:
    c b h
    i u e
    a o l
    o n l
    d o
    ì̀ */

    Non riesco a capire dove sbaglio, quando eseguo il programma mi da il seguente errore e la seconda e terza parola vengono tagliate anche se ho fatto un metodo per far sì che ciò non accada:


    c b h
    i u e
    a o l
    o n l
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
    at java.lang.String.substring(String.java:1963)
    at StringaVerticale.cicloWhile(StringaVerticale.java:56)
    at StringaVerticale.main(StringaVerticale.java:70)


    ----------------------------------------------------------------

    public
    class StringaVerticale

    {
    String parola1;
    String parola2;
    String parola3;
    int maxlen = 0;

    public StringaVerticale(String parola1, String parola2, String parola3)
    {
    this.parola1 = parola1;
    this.parola2 = parola2;
    this.parola3 = parola3;
    }

    public int maxLen()
    {
    if (parola1.length() >= parola2.length() && parola1.length() >= parola3.length())
    {
    return maxlen = parola1.length();
    }

    else if (parola2.length() >= parola1.length() && parola2.length() >= parola3.length())
    {
    return maxlen = parola2.length();
    }


    else if (parola3.length() >= parola1.length() && parola3.length() >= parola2.length())
    {
    return maxlen = parola3.length();
    }

    else
    {
    return maxlen;
    }
    }

    public void cicloWhile()
    {
    int count0 = 0;
    int count1 = 1;

    while (count0 < maxlen)
    {
    System.out.print(parola1.substring(count0, count1)+ " ");
    System.out.print(parola2.substring(count0, count1)+ " ");
    System.out.println(parola3.substring(count0, count1)+ " ");

    count0++;
    count1++;
    }
    }

    public static void main(String[] args)
    {
    StringaVerticale newstring = new StringaVerticale("ciao", "buondi'", "hello");


    System.out.println(newstring.maxLen());
    newstring.cicloWhile();
    }
    }

    ----------------------------------------------------------------

    Inoltre se elimino "System.out.println(newstring.maxLen());" ed eseguo il programma non mi viene restituito niente.
    Ti sto risolvendo il tuo problema, non appena avrò finito ti allegherò il file

  2. #2

    Risolto

    Quote Originariamente inviata da antoniob98 Visualizza il messaggio
    Ti sto risolvendo il tuo problema, non appena avrò finito ti allegherò il file
    Ecco a tutto ciò che ti serve
    Ti lascio in allegato, oltre al progetto, un immagine che mostra il programma in fase di run.
    Cattura.jpg
    Link Programma

    Fammi sapere cosa ne pensi

  3. #3
    Quote Originariamente inviata da antoniob98 Visualizza il messaggio
    Ecco a tutto ciò che ti serve
    Ti lascio in allegato, oltre al progetto, un immagine che mostra il programma in fase di run.
    Cattura.jpg
    Link Programma

    Fammi sapere cosa ne pensi
    Capito, Grazie mille !!

Tag per questa discussione

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.