String[] : tableau de chaines de caractères - Java - Programmation
Marsh Posté le 13-12-2007 à 01:43:11
Salut,
dRfELL a écrit : String[] userInputs; |
Essaie de donner des infos, parce que avec des "ca marche pas" ou "cela ne fonctionne pas", tu vas etre bien recu ici ...
Donc tu as bien declare ta variable, as tu bien pense aussi a l'initialiser avec "userInputs = new String[10];" par exemple pour que l'objet soit utilisable ?
@++
Marsh Posté le 13-12-2007 à 13:31:19
oui j'ai bien fait ça
voici l'erreur que j'obtiens
Citation : |
Marsh Posté le 13-12-2007 à 14:38:23
Il y en a quand meme une intéressante :
Code :
|
j'imagine qu'a la ligne 53 de GestionEntites.java, tu fais un new Integer(<quelque chose> ) et ce quelque chose est soit null ou ne représente pas un entier
Marsh Posté le 13-12-2007 à 16:51:44
En effet, voici mon code :
Code :
|
userInputs est lu au départ à partir d'un JTextField
Marsh Posté le 14-12-2007 à 04:01:32
Salut,
dRfELL a écrit :
|
Donc le probleme c'est quand tu Parses la chaine fournie par le JTextField pour faire l'Integer...
La doc Java dit bien :
public Integer(String s) throws NumberFormatExceptionConstructs a newly allocated Integer object that represents the int value indicated by the String parameter. The string is converted to an int value in exactly the manner used by the parseInt method for radix 10.
Parameters: s - the String to be converted to an Integer.
Throws: NumberFormatException - if the String does not contain a parsable integer.
See Also: parseInt(java.lang.String, int)
Donc le probleme vient du texte entre dans le JTextField quand il est parse. C'est quoi les valeurs que tu rentres ?
Au passage lis dans le Javadoc ce qui concerne "parseInt(java.lang.String, int)" qui intervient apres "new Integer(String s)", c'est interessant :
public static int parseInt(String s, int radix) throws NumberFormatExceptionParses the string argument as a signed integer in the radix specified by the second argument. The characters in the string must all be digits of the specified radix (as determined by whether Character.digit(char, int) returns a nonnegative value), except that the first character may be an ASCII minus sign '-' ('\u002D') to indicate a negative value. The resulting integer value is returned.
An exception of type NumberFormatException is thrown if any of the following situations occurs:
The first argument is null or is a string of length zero.
The radix is either smaller than Character.MIN_RADIX or larger than Character.MAX_RADIX.
Any character of the string is not a digit of the specified radix, except that the first character may be a minus sign '-' ('\u002D') provided that the string is longer than length 1.
The value represented by the string is not a value of type int.
Examples:
parseInt("0", 10) returns 0
parseInt("473", 10) returns 473
parseInt("-0", 10) returns 0
parseInt("-FF", 16) returns -255
parseInt("1100110", 2) returns 102
parseInt("2147483647", 10) returns 2147483647
parseInt("-2147483648", 10) returns -2147483648
parseInt("2147483648", 10) throws a NumberFormatException
parseInt("99", 8) throws a NumberFormatException
parseInt("Kona", 10) throws a NumberFormatException
parseInt("Kona", 27) returns 411787
@++
Marsh Posté le 14-12-2007 à 09:19:47
Merci
Pourtant, je rentre bien des valeurs comme 13, 12323, -12, par exemple
PS : j'ai changé en :
public void creerEntite(String typeEntite, String[] userInputs) throws NumberFormatException
mais ça reste pareil
Marsh Posté le 14-12-2007 à 10:22:29
Citation : PS : j'ai changé en : |
Ce que tu dois faire, c'est tester tes variable avant de les utiliser et chercher pourquoi une valeur null arrive là.
Marsh Posté le 14-12-2007 à 11:51:09
Bonjour,
pourquoi ne pas tout simplement debugger ou mettre des traces dans ton code ?
Marsh Posté le 14-12-2007 à 12:13:24
Je ne sais pas ce qu'est "mettre des traces dans le code"
PS : Je précise que j'ai eu en tout et pour tout 5 cours de java, mais que ça me plait et donc j'aime aller un peu plus loin (j'ai lu des tutoriaux)
Marsh Posté le 14-12-2007 à 14:54:35
si je remplace mon
Code :
|
par un
Code :
|
ça marche
Marsh Posté le 14-12-2007 à 15:17:04
Ne me frappez pas
j'ai mis getName au lieux de getText...
Marsh Posté le 14-12-2007 à 16:13:02
Je rêve ou on n'a toujours pas lu l'exception et on est en train de faires des plans sur la comète?
Marsh Posté le 14-12-2007 à 17:34:45
Je ne sais pas si ça veut dire quelque chose que ce t'as dit, mais en tout cas, je ne comprends rien
Marsh Posté le 14-12-2007 à 18:47:15
replay
dRfELL a écrit : |
brisssou a écrit : c'est con, t'as enlevé juste la ligne intéressante. |
Marsh Posté le 14-12-2007 à 19:45:44
faut le créer le tableau de String, et pas juste le déclarer
Code : |
Marsh Posté le 14-12-2007 à 21:05:53
Apprends à un homme à lire un stacktrace, il débuggera toute sa vie. File lui la soluce, il reviendra à toi demain.
Marsh Posté le 15-12-2007 à 09:43:04
sircam a écrit : replay |
Pour savoir, la ligne intéressante, c'est laquelle ?
Kid_Paddle a écrit : faut le créer le tableau de String, et pas juste le déclarer
|
J'ai résolu le problème, la réponse est juste au dessus
Sinon, j'avais créé le tableau aussi, mais c'est vrai qu'on le voyait pas dans le bout de code que j'ai posté.
Marsh Posté le 12-12-2007 à 19:03:08
Bonjour,
je souhaiterais créer un tableau de chaines de caractères.
J'essaie donc de faire :
String[] userInputs;
[...]
userInputs[0] = textField1.getText();
mais cela ne fonctionne pas
Comment faire ?
Merci