JAVA Stocker des variables afin de les utiliser + tard

Fermé
Thytto Messages postés 5 Date d'inscription jeudi 29 janvier 2015 Statut Membre Dernière intervention 30 janvier 2015 - Modifié par Thytto le 29/01/2015 à 10:55
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 30 janv. 2015 à 14:15
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

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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
29 janv. 2015 à 13:46
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 jeudi 29 janvier 2015 Statut Membre Dernière intervention 30 janvier 2015
29 janv. 2015 à 13:49
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 jeudi 29 janvier 2015 Statut Membre Dernière intervention 30 janvier 2015
29 janv. 2015 à 13:46
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
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 jeudi 29 janvier 2015 Statut Membre Dernière intervention 30 janvier 2015
29 janv. 2015 à 17:51
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
29 janv. 2015 à 20:06
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 jeudi 29 janvier 2015 Statut Membre Dernière intervention 30 janvier 2015
Modifié par KX le 30/01/2015 à 13:45
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
30 janv. 2015 à 14:15
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