String en Int et invercement (Java)

Résolu
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

  1. Contributeur
    Pour info, int est le type primitif et Integer une classe.

    Il suffit d'utiliser:

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

    Good luck
    1. Merci beaucoup ça marche tip tpo
  2. Bonsoir,

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

    @+

    -- O espirito da liberdade --
    1. Ok sa marche Superbien avec Integer.parseInt()
      Merci beaucoup ;-)
      1. Ou tu peux faire aussi
        Integer s= new Integer("ma chaine");
        int t=s.intValue();
        1. 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;
          }
          }
          1. 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
            1. 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...
              1. Contributeur
                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;
                   }
                }
                

                1. 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;
                  }
                  }
                2. Contributeur
                  @DeirbhiOù est la différence ?
                  EDIT: A oui exact, le nom de la méthode appelée était la mauvaise effectivement :)
              2. 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;
                }