String en Int et invercement (Java) [Résolu/Fermé]

Signaler
-
 brian -
Bonjour a tous,

Voici mon pb; je veux changer un String en int.
pour le moment je fait;

import java.lang.*;
int a = Integer.decode( "monString" );

Et G la chance d'avoir ceci a la compilation;

FichierHightScore.java:207: incompatible types
found : java.lang.Integer
required: int
int a = Integer.decode("monString");
^

voila, donc si qqu a une idée merci de me donner des conseils

10 réponses

Messages postés
137
Date d'inscription
vendredi 8 février 2002
Statut
Contributeur
Dernière intervention
7 mai 2006
161
Pour info, int est le type primitif et Integer une classe.

Il suffit d'utiliser:

int a = Integer.parseInt("ma chaine");

Good luck
124
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61368 internautes nous ont dit merci ce mois-ci

Merci beaucoup ça marche tip tpo
int a=Integer.parseInt(stirng x)

Bonsoir,

Integer.decode(String s) retourne un objet Integer et non un int. (voir la documentation)

@+

-- O espirito da liberdade --
Ok sa marche Superbien avec Integer.parseInt()
Merci beaucoup ;-)
Ou tu peux faire aussi
Integer s= new Integer("ma chaine");
int t=s.intValue();
Messages postés
4100
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
2 septembre 2013
839
Code corrigé :
public class Exer2{
   public static void main(String args[]){
      System.out.println("la somme vaut" + somme(12,75));
   }
   public static int calcule(int a,int b){
      return a+b;
   }
}

le Code corrigéne serai pas plutot :

public class Exer2{
public static void main(String args[]){
System.out.println("la somme vaut" + calcule(12,75));
}
public static int calcule(int a,int b){
return a+b;
}
}
Messages postés
4100
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
2 septembre 2013
839 > Deirbhi
Où est la différence ?
EDIT: A oui exact, le nom de la méthode appelée était la mauvaise effectivement :)
J'ai crée une méthode qui a partir d'une string (que je lis à partir d'un flux en entrée) doit isoler le numéro qu'il y a dedans et le mettre dans une variable int.

Ma ça ne marche pas, l'erreurs devrait être dans la condition de l'if mais j'arriva pas a trouver une solution. Merci de vouloir m'aider ou sinon proposez une autre façon d'avoir le même résultat. merci


public static int getnumbers (InputStream receivin){
byte bufin[]= new byte [2048];
char tableau[]={0,1,2,3,4,5,6,7,8,9};
int ln=0;
char data[]= new char[20];
int numbers=0;

try {
while (receivin.available()==0);
ln=receivin.read(bufin);
String in=new String (bufin,0,ln);
for(int index=0; index<=in.length();index++)
{
for (int i=0; i<10; i++)
{
if(in.charAt(index)==tableau[i])
{
int dataindex =0;
data[dataindex]=in.charAt(index);
dataindex++;
}
}
}

String num = new String (data);

Integer s = new Integer(num);
numbers=s.intValue();

// numbers=Integer.parseInt(num);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return numbers;
}
Messages postés
170
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
1 mai 2008
73
Bonjour,

Dans la méthode "main", il n'y a pas d'appel à la méthode calcule et "somme" n'est ni défini, ni initialisé.

Philippe
pouriez vous me dire ce qui fait ke ca ne marche pa???et me dire ce kil fo metre et ou?
public class Exer2
{
public static void main(String args[])
{
System.out.println("la somme vaut" + somme);

}
public int calcule(int a,int b)
{
int somme=a+b;
return somme;
}
}
Messages postés
117
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
17 décembre 2007
46
En plus, ta méthode calcule n'est pas statique, donc tu ne pourras pas l'instancier directement dans le main. Et t'es entiers a et b n'ont pas de valeur...