Java, array
Salve a tutti, perché questo pezzo di codice anche se funziona dà una eccezione? Come andrebbe aggiustato per renderlo funzionante?
Grazie.
public static void main(String []args){
String [] stringhe;
int i;
stringhe = new String[2];
for(i = 0; i <= 2; i++){
Scanner in = new Scanner(System.in);
System.out.println("Inserirsci stringa" +i);
stringhe[i] = in.nextLine();
}Grazie.
Risposte
ecco qui
import java.util.Scanner;
class prova {
public static void main(String []args){
String [] stringhe;
int i;
stringhe = new String[2];
for(i = 0; i <= 1; i++){
Scanner in = new Scanner(System.in);
System.out.println("Inserirsci stringa" +i);
stringhe[i] = in.nextLine();
}
}}
tu hai messo nel for i che va fino a due ....invece va fino ad uno visto che gli indici partono da zero ,,,, mentre String[2] ti indica che ci sono due elementi ....ma questi verranno posizionati a partire dalla posizione zero....
i= 0 -----------> stringhe[0] PRIMO ELEMENTO inserito in 0 ;
i= 1 ---------------> stringhe[1] SECONDO ELEMENTO inserito in 1 ;
cosi hai gia' inserito due elementi....
i= 0 -----------> stringhe[0] PRIMO ELEMENTO inserito in 0 ;
i= 1 ---------------> stringhe[1] SECONDO ELEMENTO inserito in 1 ;
cosi hai gia' inserito due elementi....
Ho corretto, ma l'eccezione resta
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at esercizi.StringaConcatenazione.main
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at esercizi.StringaConcatenazione.main
a funziona sul mio java...non mi da nessun problema.... hai forse aperti altri programmi java? prova a chiuderli tutti se si e a lanciare solo quello...
Risolto, c'era un pezzo di codice che non avevo cancellato...grazie.
Ti mando la versione finale del programma giusto per completezza. Funziona, forse c'era un metodo più raffinato?
/*
* Scrivere un programma che date tre stringhe inserite a linea di comando
* visualizza la concatenazione delle loro iniziali.
*/
package esercizi;
import java.util.Scanner;
/**
*
* @author Lionel
*/
public class StringaConcatenazione {
public static void main(String []args){
String [] stringhe;
String [] primoCarattereStringa;
int i;
stringhe = new String[3];
for(i = 0; i <=2 ; i++){
Scanner in = new Scanner(System.in);
System.out.println("Inserisci stringa" +i);
stringhe[i] = in.nextLine();
}
primoCarattereStringa = new String[3];
for (i = 0; i<=2; i++){
primoCarattereStringa[i] = stringhe[i].substring(0,1);
}
System.out.println(primoCarattereStringa[0].concat(primoCarattereStringa[1].concat(primoCarattereStringa[2])));
}
}
allora il tuo programma va bene ...io ho accorciato la parte finale
java.util.Scanner;
/**
*
* @author Lionel
*/
public class StringaConcatenazione {
public static void main(String []args){
String [] stringhe;
int i;
stringhe = new String[3];
for(i = 0; i <=2 ; i++){
Scanner in = new Scanner(System.in);
System.out.println("Inserisci stringa" +i);
stringhe = in.nextLine();
}
String primicaratteri = " "; // questa e' la stringa di accumulazione, verra' accumulato qui dentro ogni primo carattere
for (i = 0; i<=2; i++){
primicaratteri= primicaratteri+stringhe.charAt(0);
}
System.out.println(primicaratteri);
}
}][/code]
java.util.Scanner;
/**
*
* @author Lionel
*/
public class StringaConcatenazione {
public static void main(String []args){
String [] stringhe;
int i;
stringhe = new String[3];
for(i = 0; i <=2 ; i++){
Scanner in = new Scanner(System.in);
System.out.println("Inserisci stringa" +i);
stringhe = in.nextLine();
}
String primicaratteri = " "; // questa e' la stringa di accumulazione, verra' accumulato qui dentro ogni primo carattere
for (i = 0; i<=2; i++){
primicaratteri= primicaratteri+stringhe.charAt(0);
}
System.out.println(primicaratteri);
}
}][/code]