Salve a tutti, sto riscontrando un problema nello svolgimento di un esercizio in Java.
Il programma deve prendere in input da tastiera tre stringhe e stamparle in verticale una affianco all'altra.
esempio:
cane
gatto
cavallo
diventano -->
cgc
aav
nta
etl
*tl
*oo
(gli asterischi li ho messi io, altrimenti non uscivano in colonna)
Questo che posto è il codice che ho scritto...
import java.util.Scanner;
public class ParallelVPrint10{
public static void verticalString(String phrasea, String phraseb, String phrasec){
for (int i = 0; i < phrasea.length() || i < phraseb.length() || i < phrasec.length(); i++){
System.out.print(phrasea.charAt(i));
System.out.print(phraseb.charAt(i));
System.out.println(phrasec.charAt(i));
}
}
public static void main(String[] args){
String phrasea;
String phraseb;
String phrasec;
Scanner keyboard = new Scanner(System.in);
phrasea = keyboard.nextLine();
phraseb = keyboard.nextLine();
phrasec = keyboard.nextLine();
verticalString(phrasea, phraseb, phrasec);
}
}
ma mi da questo errore...
cane
gatto
cavallo
cgc
aaa
ntv
eta
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(String.java:658)
at ParallelVPrint10.verticalString(ParallelVPrint10.java:5)
at ParallelVPrint10.main(ParallelVPrint10.java:20)
Ho capito che da quest'errore perchè, arrivato alla fine della stringa più corta, non sa più cosa stampare; ma non riesco a venire a capo di una soluzione.
Suggerimenti?