JAVA Stocker des variables afin de les utiliser + tard

Thytto Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

En java :

J'ai la variable String suivante : multiVars = var1 + var2 + ... + var50

Les valeurs des variables var1...var50 changent dans le programme.

Je souhaite éviter de faire un copier/coller de multiVars = var1 + var2 + ... + var50 à chaque fois (9 au total)

Je ne sais pas si c'est possible mais j'ai créé un String totalVar = "var1 + var2 + ... +var50"
et je souhaite appeler ce totalVar et qu'il m'affiche le contenu sans les " " ce qui eviterait de saisir à nouveau les 50 variables.

Merci

A voir également:

5 réponses

JwTdd
 
Salut, peut-être peux-tu utiliser un tableau et faire une fonction qui concatène tout se qu'il y a dans le tableau, ainsi tu n'auras besoin que du tableau en argument.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Il faut faire une méthode qui s'occupera de la concaténation, comme ça au lieu d'appeler toute l'affectation tu fais juste l'appel de la méthode.

Tu peux aussi combiner ça avec la proposition de JwTdd et utiliser un tableau.

private static final int NB_VARS = 50;
private static final String[] vars = new String[NB_VARS];

private static String mergeVars() {
    StringBuilder sb = new StringBuilder();
    for (String var : vars)
        sb.append(var);
    return sb.toString();
}

String totalVar = mergeVars();
0
Thytto Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci egalement pour cette proposition je pense avoir tous les eléments avec vos 2 réponses.
Je teste ça et posterai une réponse pour le résultat
0
Thytto Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
salut et merci pour ta réponse rapide

J'ai effectivement pensé à un tableau que j'alimente avec mes var1..var50 :

public static void main{
String var1 = "";......
String var50= "";
String[] sequenceVariables = {var1,....,var50} ;

...Code où les var prennent d'autres valeurs...

multiVars =""
for (int i = 1; i < sequenceVariables .length; i++) {
multiVars += sequenceVariables [i] ;}

Si je fait un sysout les valeurs des variables var sont celles stockées au début dans le tableau.
Cela parait logique en fait car je stocke des valeurs dans ce tableau
0
JwTdd
 
Oui normal il fraudais modifier sequenceVariables[0], sequenceVariables[1] directement... au lieu de var1, var2 puis appeler la méthode pour concaténer après modification, c'était q'une proposition le tableau par exemple si tu n'était pas attaché au noms des variables.
0
Thytto Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai peut etre mal fait quelque chose mais je n'y suis pas arrivé.
J'ai fait des copier/coller et mis un commentaire.... c'est pas trés propre mais au moins ça marche :)

Merci encore pour vos réponses
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Nos propositions ne sont que des idées, il est impossible de faire du tout cuit qui fonctionne du premier coup dans tous les cas... Peut être qu'avec ton code on pourrait te dire où est le problème, mais clairement les copier coller ce n'est pas la bonne solution.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Thytto Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Voici une version simplifié de mon programme, on va utiliser seulement 4 variables au lieu de 50.

public static void main(String[] args) {

String var1 = "";
String var2 = "";
String var3 = "";
String multiVar = "";

Connection a une base de donnée

SELECT nom, montant1, montant2
FROM table
WHERE condition

while (rs.next){

           var3 = rs.getString("nom")

           if ( !rs.getString("montant1").equalsIgnoreCase("0.00") ){
               var1 = rs.getString("montant1")
               <bold>multiVar = var1 + var2 + var3</bold>             
               // ecriture dans un fichier txt 
               ffw.write (multiVar + "\n")
           }

           if !rs.getString("montant2").equalsIgnoreCase("0.00"){
               var2 = rs.getString("montant2")
               <bold>multiVar = var1 + var2 + var3</bold>             
               // ecriture dans un fichier txt 
               ffw.write (multiVar + "\n")
         }


}
}

C'est la ligne en gras multiVar où je fais un copier/coller (9 au total !!!)
C'est vrai que ce n'est pas la bonne solution, j'ai opté pour celle-ci afin de pouvoir continuer sur mon projet.

Merci
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Le problème c'est que tu mets tout dans le main, du coup c'est impossible de faire des appels à des méthodes. Il faut découper ton code par fonctionnalité, par exemple comme je l'ai fait avec une méthode qui va s'occuper de la concaténation.
0