Conversion d’une chaîne en un entier sur Android

Comment convertir une chaîne en un entier?

J’ai un textbox Je demande à l’utilisateur d’entrer un nombre dans:

EditText et = (EditText) findViewById(R.id.entry1); Ssortingng hello = et.getText().toSsortingng(); 

Et la valeur est assignée à la chaîne hello .

Je veux le convertir en un nombre entier pour que je puisse obtenir le nombre qu’ils ont tapé; il sera utilisé ultérieurement dans le code.

Y a-t-il un moyen d’obtenir l’ EditText à un nombre entier? Cela passerait l’homme intermédiaire. Si ce n’est pas le cas, la chaîne en entier sera très bien.

Voir la classe Integer et la parseInt() statique parseInt() :

http://developer.android.com/reference/java/lang/Integer.html

 Integer.parseInt(et.getText().toSsortingng()); 

Vous devrez toutefois intercepter NumberFormatException en cas de problèmes lors de l’parsing, donc:

 int myNum = 0; try { myNum = Integer.parseInt(et.getText().toSsortingng()); } catch(NumberFormatException nfe) { System.out.println("Could not parse " + nfe); } 
 int in = Integer.valueOf(et.getText().toSsortingng()); //or int in2 = new Integer(et.getText().toSsortingng()); 

Utilisez une expression régulière:

 Ssortingng s="your1ssortingng2contain3with4number"; int i=Integer.parseInt(s.replaceAll("[\\D]", "")); 

sortie: i = 1234;

Si vous avez besoin d’une première combinaison de nombres, vous devriez essayer le code ci-dessous:

 Ssortingng s="abc123xyz456"; int i=NumberFormat.getInstance().parse(s).intValue(); 

sortie: i = 123;

Utilisez une expression régulière:

 int i=Integer.parseInt("hello123".replaceAll("[\\D]","")); int j=Integer.parseInt("123hello".replaceAll("[\\D]","")); int k=Integer.parseInt("1h2el3lo".replaceAll("[\\D]","")); 

sortie:

 i=123; j=123; k=123; 

Utiliser l’expression régulière est la meilleure façon de le faire, comme déjà mentionné par ashish sahu

 public int getInt(Ssortingng s){ return Integer.parseInt(s.replaceAll("[\\D]", "")); } 

Essayez ce code, ça marche vraiment.

 int number = 0; try { number = Integer.parseInt(YourEditTextName.getText().toSsortingng()); } catch(NumberFormatException e) { System.out.println("parse value is not valid : " + e); } 

Tu devrais couvrir Ssortingng pour flotter. Ça fonctionne.

 float result = 0; if (TextUtils.isEmpty(et.getText().toSsortingng()) { return; } result = Float.parseFloat(et.getText().toSsortingng()); tv.setText(result); 

La meilleure façon de convertir votre chaîne en int est:

  EditText et = (EditText) findViewById(R.id.entry1); Ssortingng hello = et.getText().toSsortingng(); int converted=Integer.parseInt(hello); 

Vous pouvez utiliser ce qui suit pour parsingr une chaîne en un entier:

int value = Integer.parseInt (textView.getText (). toSsortingng ());

(1) input: 12 alors ça fonctionnera .. car textview a pris ce 12 comme chaîne “12”.

(2) input: “abdul” alors il va lancer une exception qui est NumberFormatException. Donc, pour résoudre ce problème, nous devons utiliser try catch comme je l’ai mentionné ci-dessous:

  int tax_amount=20; EditText edit=(EditText)findViewById(R.id.editText1); try { int value=Integer.parseInt(edit.getText().toSsortingng()); value=value+tax_amount; edit.setText(Ssortingng.valueOf(value));// to convert integer to ssortingng }catch(NumberFormatException ee){ Log.e(ee.toSsortingng()); } 

Vous pouvez également vous référer au lien suivant pour plus d’informations: http://developer.android.com/reference/java/lang/Integer.html

Vous pouvez aussi le faire une ligne:

 int hello = Integer.parseInt(((Button)findViewById(R.id.button1)).getText().toSsortingng().replaceAll("[\\D]", "")); 

Lecture de l’ordre d’exécution

  1. récupérer la vue en utilisant findViewById(R.id.button1)
  2. utiliser ((Button)______) pour lancer la View tant que Button
  3. Appelez .GetText() pour obtenir l’entrée de texte de Button
  4. Appelez .toSsortingng() pour convertir le caractère en une chaîne
  5. Appelez .ReplaceAll() avec "[\\D]" pour remplacer tous les caractères non chiffrés par “” (rien)
  6. Appelez Integer.parseInt() et récupérez un entier en dehors de la chaîne uniquement.

La méthode beaucoup plus simple consiste à utiliser la méthode de decode d’ Integer , par exemple:

 int helloInt = Integer.decode(hello);