cs_mariam1987
Messages postés20Date d'inscriptionvendredi 29 février 2008StatutMembreDernière intervention21 août 2010
-
14 mai 2008 à 09:54
cs_mariam1987
Messages postés20Date d'inscriptionvendredi 29 février 2008StatutMembreDernière intervention21 août 2010
-
14 mai 2008 à 20:05
Salut a tous.
je commence a programmer en java et j'ai ecrit un morceau de code qui ne marche pas et je ne sais pas ou est le probleme::
import java.util.Vector;
public class vect
{
String [] titres={"a","b","c","d"};
String c=new String("");
Vector v= new Vector();
public vect()
{
for (int i=0;i<=titres.length+1;i++)
{
c=titres[i];
v.addElement(c);
}
}
public static void main(String args[])
{
vect t = new vect();
t.v.get(2);
}
}
en effet "t.v.get(2)" n'affiche rien .
il donne seulement:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at vect.(vect.java:14)
at vect.main(vect.java:21)
Process completed.
je ne sais pas si ce que j'ai ecrit est correcte ou non.
merci de m'aider.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 14 mai 2008 à 10:16
Salut,
au passage dans le code que tu montres la variable 'c' n'est absolument pas utilisé tu pourrais directement faire :
public vect() {
for (int i = 0; i < titres.length; ++i)
v.addElement(titres[i]);
}
de plus si tu peux utiliser une JVM >= 1.6 tu devrais utiliser la généricité pour ton vecteur :
import java.util.Vector;
public class V ect {// en java une classe commence par une maj...
private String [] titres ={"a","b","c","d"}; // c'est mieux de limiter la portée d'une variable
<strike>//private String c= new String("");</strike>// pas utilisé
private Vector<String> v = new Vector<String>();// tu ne pourras mettre autre choses que des String dans le vecteur
public Vect() {
for (int i = 0; i < titres.length; ++i)
v.add(titres[i]);
}
public static void main(String args[]) {
V ect t = new Vect();
String s = t.v.get(2);// cast implicite
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."