Conversion d'une chaîne en entier sur Android

Comment convertir une chaîne en entier?

J'ai une zone de texte dans laquelle l'utilisateur entre un numéro:

EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();

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

Je veux le convertir en entier si je peux obtenir le nombre qu'ils ont tapé; il sera utilisé plus tard dans le code.

Existe-t-il un moyen d'obtenir le EditText à un entier? Que serait ignorer l'homme du milieu. Si non, chaîne entier fera l'amende juste.

155
demandé sur HpTerm 2010-04-25 21:57:55

11 réponses

Voir la classe Integer et la méthode statique parseInt():

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

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

Vous devrez attraper NumberFormatException en cas de problèmes lors de l'analyse, donc:

int myNum = 0;

try {
    myNum = Integer.parseInt(et.getText().toString());
} catch(NumberFormatException nfe) {
   System.out.println("Could not parse " + nfe);
} 
376
répondu Jon 2016-05-05 14:55:57
int in = Integer.valueOf(et.getText().toString());
//or
int in2 = new Integer(et.getText().toString());
39
répondu manuel 2011-03-31 17:27:44

Utiliser une expression régulière:

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

Sortie: i = 1234;

Si vous avez besoin d'une première combinaison de numéros, vous devriez essayer le code ci-dessous:

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

Sortie: i = 123;

22
répondu Ashish Sahu 2014-10-02 17:22:43

Utiliser 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;
10
répondu Ashish Sahu 2014-01-31 19:41:18

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

public int getInt(String s){
return Integer.parseInt(s.replaceAll("[\\D]", ""));
}
8
répondu 2015-03-02 03:11:08

Essayez ce code, il fonctionne vraiment.

int number = 0;
try {
    number = Integer.parseInt(YourEditTextName.getText().toString());
} catch(NumberFormatException e) {
   System.out.println("parse value is not valid : " + e);
} 
7
répondu Ravi Makvana 2016-02-20 08:11:39

Vous devriez cacher la chaîne pour flotter. Il est de travail.

float result = 0;
 if (TextUtils.isEmpty(et.getText().toString()) {
  return;
}

result = Float.parseFloat(et.getText().toString());

tv.setText(result); 
4
répondu Tren Narek 2013-10-17 06:30:54

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

 EditText et = (EditText) findViewById(R.id.entry1);
 String hello = et.getText().toString();
 int converted=Integer.parseInt(hello);
4
répondu Ravi Rupareliya 2014-01-10 08:56:11

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

Valeur Int = entier.parseInt (textView.getText ().toString());

(1) entrée: 12 ensuite, il sera.. parce que textview a pris ce numéro 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().toString());
        value=value+tax_amount;
        edit.setText(String.valueOf(value));// to convert integer to string 

       }catch(NumberFormatException ee){
       Log.e(ee.toString());
       }

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

4
répondu Abdul Rizwan 2015-09-02 09:30:48

Vous pouvez également le faire une ligne:

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

Lecture de l'ordre d'exécution

  1. saisir la vue en utilisant findViewById(R.id.button1)
  2. utiliser ((Button)______) pour lancer le View comme Button
  3. appelez .GetText() pour obtenir l'entrée de texte du bouton
  4. appelez .toString() pour convertir le caractère variant en chaîne
  5. appelez .ReplaceAll() avec "[\\D]" pour remplacer tous les caractères Non numériques par "" (rien)
  6. appelez Integer.parseInt() grab et renvoyez un entier hors de la chaîne à chiffres seulement.
2
répondu Brett Moan 2014-10-28 05:57:08

La méthode beaucoup plus simple est d'utiliser le decode méthode de Integer ainsi, par exemple:

int helloInt = Integer.decode(hello);
2
répondu Joseph Chotard 2017-02-09 16:26:45