3108 votes

Comment convertir une string en int en Java?

Comment convertir un String d'un int en Java?

J'ai une chaîne qui ne contient que des nombres (les nombres de 1 à 4 pour être précis), et je veux retourner le nombre qu'il représente (en fait j'ai un StringBuffer pas String).

Par exemple, pour la chaîne "1234" le résultat devrait être le nombre 1234.

4173voto

Rob Hruska Points 39151
int foo = Integer.parseInt("1234");

Voir la Javadoc pour plus d'informations.

(Si vous l'avez dans un StringBuffer, vous aurez besoin de faire d' Integer.parseInt(myBuffer.toString()); plutôt).

706voto

smas Points 8299

Par exemple, voici deux façons:

Integer x = Integer.valueOf(str);
// or
int y = Integer.parseInt(str);

Il y a une légère différence entre ces méthodes:

  • valueOf retourne une nouvelle instance de java.lang.Entier
  • parseInt retourne primitive int.

C'est la même pour tous les cas: Court.valueOf/parseShort, Long.valueOf/parseLong etc.

248voto

Ali Akdurak Points 734

Un point très important à considérer est que, Entier analyseur jette NumberFormatException comme indiqué dans la Javadoc.

int foo;
String StringThatCouldBeANumberOrNot = "26263Hello"; //will throw exception
String StringThatCouldBeANumberOrNot2 = "26263"; //will not throw exception
try {
      foo = Integer.parseInt(StringThatCouldBeANumberOrNot);
} catch (NumberFormatException e) {
      //Will Throw exception!
      //do something! anything to handle the exception.
}

try {
      foo = Integer.parseInt(StringThatCouldBeANumberOrNot2);
} catch (NumberFormatException e) {
      //No problem this time but still it is good practice to care about exceptions.
      //Never trust user input :)
      //do something! anything to handle the exception.
}

Il est important de gérer cette exception lorsque vous essayez d'obtenir des valeurs entières de splittés arguments ou dynamique à l'analyse de quelque chose.

85voto

Billz Points 605

Le faire manuellement en Java:

public static int strToInt( String str ){
  int i = 0;
  int num = 0;
  boolean isNeg = false;

  //check for negative sign; if it's there, set the isNeg flag
  if( str.charAt(0) == '-') {
    isNeg = true;
    i = 1;
  }

  //process each char of the string; 
  while( i < str.length()) {
    num *= 10;
    num += str.charAt(i++) - '0'; //minus the ASCII code of '0' to get the value of the charAt(i++)
  }

  if (isNeg)
    num = -num;
  return num;
}

53voto

Adi Mor Points 914

Pour convertir une chaîne en un entier (int), utilisez:

String str = "1234";
int num = Integer.parseInt(str);

Pour convertir un nombre en une chaîne de caractères, utilisez:

int num = 1234;   
String str = String.valueOf(num);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X