Impossible d'additionner

maxitonor Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Je commence le Java et en essayant de faire quelque truc.. j'essaye d'aditionner deux nombre comme vous le voyer mais 2+2=4 sa me mets 22



package fr.maxitonor.essai1;

public class main {

public static void main(String[] args) {

String[] pseudo = {"1","2","c","d","e","f"};

String psepse = pseudo[1]+pseudo[1];

System.out.println(psepse);

}
}

2 réponses

Utilisateur anonyme
 
Bonsoir

Grandasse a vu juste.
une string est du texte, et donc "1" n'est pas le nombre 1, mais en quelque sorte "la lettre" 1.
De même que
"C" + "o" + "u" + "c"  + "o" + "u"
retournera
"Coucou"
,
"1" + "1"
retourne
"11"
.

Il faut donc faire comprendre à l'ordinateur que c'est le nombre que tu veux additionner et donc convertir le texte en nombre
int un = Integer.parseInt("1");
int resultat = un + un;




1
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tout à fait.

Mais de toute façon il ne faudrait jamais mélanger les torchons et les serviettes.

Dans
String[] pseudo = {"1","2","c","d","e","f"};
tu manipules à la fois des chiffres et des lettres, donc faire une transformation de
pseudo[1]
en chiffres ça va marcher, parce que effectivement dans ce cas précis à la case 1 tu as
"2"
qui représente un chiffre, mais si tu fais la même transformation sur
pseudo[2]
ça va planter car
"c"
est une lettre...

Donc faire un code qui fonctionne pour une case et plante pour la case d'à côté ce n'est pas propre, ici il faudrait soit considérer que toutes les valeurs sont des String (donc assumer que
"2"+"2"="22"
) soit considérer que toutes les valeurs représentent des chiffres et tous les convertir (impossible en décimal)
0
Utilisateur anonyme
 
Salut KX, bien vu je n'avais pas fait attention aux autres valeurs du tableau.
Ça se complique, il faut tester d'une façon ou d'une autre si les 2 items représentent un nombre, si oui les additionner, si non les concaténer.
0
Grandasse_ Messages postés 924 Date d'inscription   Statut Membre Dernière intervention   597
 
Bonjour,
Je connais mal Java, mais j'ai une idée sur la question.
Faites attention au 'typage' des variables.
Ici vous additionnez deux chaines de caractère (string) donc forcément ça retourne une chaine concaténée.
Il doit exister des fonctions pour changer pseudo[1] d'un string à un integer, je vous laisse chercher !
0
maxitonor Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   2
 
merci je vais chercher peut etre si je passe les variable string à du int sa marchera
0
maxitonor Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   2 > maxitonor Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
sa marche pas vu que c'est une chaine il faut apsolument la variable string
0