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 pour pouvoir obtenir le nombre qu'ils ont tapé; il sera utilisé plus tard dans le code.
Existe-t-il un moyen d'obtenir EditText
un entier? Cela ignorerait l’intermédiaire. Sinon, une chaîne à un entier conviendra parfaitement.
Réponses:
Voir la classe Integer et la
parseInt()
méthode statique :http://developer.android.com/reference/java/lang/Integer.html
Vous aurez besoin d'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); }
la source
int in = Integer.valueOf(et.getText().toString()); //or int in2 = new Integer(et.getText().toString());
la source
Utilisez une expression régulière:
String s="your1string2contain3with4number"; int i=Integer.parseInt(s.replaceAll("[\\D]", ""));
sortie: i = 1234;
Si vous avez besoin de la première combinaison de chiffres, vous devriez essayer le code ci-dessous:
String s="abc123xyz456"; int i=NumberFormat.getInstance().parse(s).intValue();
sortie: i = 123;
la source
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]",""));
production:
i=123; j=123; k=123;
la source
Utiliser une expression régulière est le meilleur moyen de le faire, comme déjà mentionné par ashish sahu
public int getInt(String s){ return Integer.parseInt(s.replaceAll("[\\D]", "")); }
la source
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); }
la source
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);
la source
Vous devez convertir String pour qu'il flotte. Ça fonctionne.
float result = 0; if (TextUtils.isEmpty(et.getText().toString()) { return; } result = Float.parseFloat(et.getText().toString()); tv.setText(result);
la source
Vous pouvez utiliser ce qui suit pour analyser une chaîne en un entier:
valeur int = Integer.parseInt (textView.getText (). toString ());
(1) entrée: 12 alors cela fonctionnera .. parce que textview a pris ce nombre 12 comme chaîne de "12".
(2) input: "abdul" alors il lancera 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 consulter le lien suivant pour plus d'informations: http://developer.android.com/reference/java/lang/Integer.html
la source
Vous pouvez également le faire sur une seule ligne:
int hello = Integer.parseInt(((Button)findViewById(R.id.button1)).getText().toString().replaceAll("[\\D]", ""));
Lecture à partir de l'ordre d'exécution
findViewById(R.id.button1)
((Button)______)
pour lancer leView
comme unButton
.GetText()
pour obtenir l'entrée de texte de Button.toString()
pour convertir le caractère variant en chaîne.ReplaceAll()
avec"[\\D]"
pour remplacer tous les caractères non numériques par "" (rien)Integer.parseInt()
grab et retournez un entier hors de la chaîne Digit-only.la source
La méthode beaucoup plus simple consiste à utiliser la
decode
méthode deInteger
, par exemple:int helloInt = Integer.decode(hello);
la source
Kotlin
Il existe des méthodes d'extension disponibles pour les analyser en d'autres types primitifs.
"10".toInt()
"10".toLong()
"true".toBoolean()
"10.0".toFloat()
"10.0".toDouble()
"10".toByte()
"10".toShort()
Java
String num = "10"; Integer.parseInt(num );
la source
Il existe cinq façons de convertir la première manière:
String str = " 123" ; int i = Integer.parse(str); output : 123
La deuxième façon:
String str = "hello123world"; int i = Integer.parse(str.replaceAll("[\\D]" , "" ) ); output : 123
La troisième voie:
String str"123"; int i = new Integer(str); output "123
La quatrième voie:
String str"123"; int i = Integer.valueOf(Str); output "123
La cinquième voie:
String str"123"; int i = Integer.decode(str); output "123
Il pourrait y avoir d'autres moyens mais c'est ce dont je me souviens maintenant
la source