Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2727 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  String[] : tableau de chaines de caractères

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

String[] : tableau de chaines de caractères

n°1657364
dRfELL
I want to believe.
Posté le 12-12-2007 à 19:03:08  profilanswer
 

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 :)

mood
Publicité
Posté le 12-12-2007 à 19:03:08  profilanswer
 

n°1657496
bugbreeder
Posté le 13-12-2007 à 01:43:11  profilanswer
 

Salut,
 

dRfELL a écrit :

String[] userInputs;
[...]
userInputs[0] = textField1.getText();
 
mais cela ne fonctionne pas


 
Essaie de donner des infos, parce que avec des "ca marche pas" ou "cela ne fonctionne pas", tu vas etre bien recu ici  [:as253] ...
 
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 ?
 
@++

n°1657676
dRfELL
I want to believe.
Posté le 13-12-2007 à 13:31:19  profilanswer
 

oui j'ai bien fait ça :)
voici l'erreur que j'obtiens

Citation :


 at java.lang.Integer.parseInt(Unknown Source)
 at java.lang.Integer.<init>(Unknown Source)
 at controller.GestionEntites.creerEntite(GestionEntites.java:53)
 at controller.FenetreCreationEntite.actionPerformed(FenetreCreationEntite.java:181)
 at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
 at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
 at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
 at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
 at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
 at java.awt.Component.processMouseEvent(Unknown Source)
 at javax.swing.JComponent.processMouseEvent(Unknown Source)
 at java.awt.Component.processEvent(Unknown Source)
 at java.awt.Container.processEvent(Unknown Source)
 at java.awt.Component.dispatchEventImpl(Unknown Source)
 at java.awt.Container.dispatchEventImpl(Unknown Source)
 at java.awt.Component.dispatchEvent(Unknown Source)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
 at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
 at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
 at java.awt.Container.dispatchEventImpl(Unknown Source)
 at java.awt.Window.dispatchEventImpl(Unknown Source)
 at java.awt.Component.dispatchEvent(Unknown Source)
 at java.awt.EventQueue.dispatchEvent(Unknown Source)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.run(Unknown Source)

n°1657701
brisssou
8-/
Posté le 13-12-2007 à 13:59:31  profilanswer
 

c'est con, t'as enlevé juste la ligne intéressante.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1657745
Bidem
Posté le 13-12-2007 à 14:38:23  profilanswer
 

Il y en a quand meme une intéressante :

Code :
  1. at controller.GestionEntites.creerEntite(GestionEntites.java:53)


 
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

n°1657841
dRfELL
I want to believe.
Posté le 13-12-2007 à 16:51:44  profilanswer
 

En effet, voici mon code :

Code :
  1. public void creerEntite(String typeEntite, String[] userInputs)
  2. [...]
  3.  else if(typeEntite.equalsIgnoreCase("pays" )) {
  4.   Pays P;
  5.   String nom = userInputs[0];
  6.   Integer PIB = new Integer(userInputs[1]);
  7.   Float com = new Float(userInputs[2]);
  8.   P = new Pays(nom, PIB.intValue(), com.floatValue());
  9.   this._pays.addElement(P);
  10.  }
 

userInputs est lu au départ à partir d'un JTextField

Message cité 1 fois
Message édité par dRfELL le 13-12-2007 à 16:52:26
n°1658054
bugbreeder
Posté le 14-12-2007 à 04:01:32  profilanswer
 

Salut,
 

dRfELL a écrit :

Code :
  1. Integer PIB = new Integer(userInputs[1]);


 
userInputs est lu au départ à partir d'un JTextField


 
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

 
@++

n°1658081
dRfELL
I want to believe.
Posté le 14-12-2007 à 09:19:47  profilanswer
 

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


Message édité par dRfELL le 14-12-2007 à 09:26:55
n°1658120
Bidem
Posté le 14-12-2007 à 10:22:29  profilanswer
 

Citation :

PS : j'ai changé en :
public void creerEntite(String typeEntite, String[] userInputs) throws NumberFormatException


 
Ce que tu dois faire, c'est tester tes variable avant de les utiliser et chercher pourquoi une valeur null arrive là.

n°1658193
candide2
Posté le 14-12-2007 à 11:51:09  profilanswer
 

Bonjour,
pourquoi ne pas tout simplement debugger ou mettre des traces dans ton code ?

mood
Publicité
Posté le 14-12-2007 à 11:51:09  profilanswer
 

n°1658211
dRfELL
I want to believe.
Posté le 14-12-2007 à 12:13:24  profilanswer
 

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)

n°1658263
brisssou
8-/
Posté le 14-12-2007 à 13:18:11  profilanswer
 

bha tu fais des System.out.println(unTrucInteressant); de temps en temps pour afficher la valeur de certaines variables qui t'intéressent.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1658352
dRfELL
I want to believe.
Posté le 14-12-2007 à 14:54:35  profilanswer
 

si je remplace mon  

Code :
  1. userInputs[0] = textField1.getText();

par un

Code :
  1. System.out.println(textField1.getText());

ça marche

n°1658374
dRfELL
I want to believe.
Posté le 14-12-2007 à 15:17:04  profilanswer
 

Ne me frappez pas :o
j'ai mis getName au lieux de getText...


Message édité par dRfELL le 14-12-2007 à 15:17:13
n°1658439
sircam
I Like Trains
Posté le 14-12-2007 à 16:13:02  profilanswer
 

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? :o


Message édité par sircam le 14-12-2007 à 16:13:13

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1658487
dRfELL
I want to believe.
Posté le 14-12-2007 à 17:34:45  profilanswer
 

Je ne sais pas si ça veut dire quelque chose que ce t'as dit, mais en tout cas, je ne comprends rien  [:dams86]

n°1658513
sircam
I Like Trains
Posté le 14-12-2007 à 18:47:15  profilanswer
 

replay

dRfELL a écrit :


voici l'erreur que j'obtiens


brisssou a écrit :

c'est con, t'as enlevé juste la ligne intéressante.



---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1658539
Kid_Paddle
Posté le 14-12-2007 à 19:45:44  profilanswer
 

faut le créer le tableau de String, et pas juste le déclarer

Code :
  1. String[] userInputs = new String[taile_du_tableau];

Message cité 1 fois
Message édité par Kid_Paddle le 14-12-2007 à 19:53:20
n°1658566
sircam
I Like Trains
Posté le 14-12-2007 à 21:05:53  profilanswer
 

Apprends à un homme à lire un stacktrace, il débuggera toute sa vie. File lui la soluce, il reviendra à toi demain.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1658616
dRfELL
I want to believe.
Posté le 15-12-2007 à 09:43:04  profilanswer
 


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

Code :
  1. String[] userInputs = new String[taile_du_tableau];


 

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é.

 


Message édité par dRfELL le 15-12-2007 à 15:37:43

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  String[] : tableau de chaines de caractères

 

Sujets relatifs
[C] fwrite ajoute des caractères de fin de ligne ...[Resolu] Probleme de hauteur de tableau
Remplacement chaine de caractères dans fichier[Spry & XML]Impossible d'afficher des images dans mon tableau
probleme affichage de caractèresProblème avec un constante pour tableau
[Smarty] Acceder à un tableau par index $tableau[$x][$y]Cumul valeur dans un tableau
[C] Tableau à deux dimensionsproblème programme Tableau
Plus de sujets relatifs à : String[] : tableau de chaines de caractères


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR