Cum pot converti un șir de caractere într-un întreg?
Am un textbox am utilizatorului, introduceți un număr în:
EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
Iar valoarea este atribuit șir de "buna ziua".
Vreau să-l convertească la un număr întreg astfel încât pot obține numărul ei scris; acesta va fi folosit mai târziu în cod.
Există o modalitate de a obține `EditText la un număr întreg? Care ar sări om de mijloc. Dacă nu, șir la număr întreg va fi bine.
Vezi Întreg clasă și static parseInt()
metoda:
http://developer.android.com/reference/java/lang/Integer.html
Integer.parseInt(et.getText().toString());
Veți avea nevoie pentru a prinde NumberFormatException` deși, în caz de probleme în timp ce parsarea, astfel:
int myNum = 0;
try {
myNum = Integer.parseInt(et.getText().toString());
} catch(NumberFormatException nfe) {
System.out.println("Could not parse " + nfe);
}
Utilizați expresii regulate:
String s="your1string2contain3with4number";
int i=Integer.parseInt(s.replaceAll("[\\D]", ""));
ieșire: i=1234;
Dacă aveți nevoie de primul număr combinație atunci ar trebui să încercați de cod de mai jos:
String s="abc123xyz456";
int i=NumberFormat.getInstance().parse(s).intValue();
ieșire: i=123;
Utilizați expresii regulate:
int i=Integer.parseInt("hello123".replaceAll("[\\D]",""));
int j=Integer.parseInt("123hello".replaceAll("[\\D]",""));
int k=Integer.parseInt("1h2el3lo".replaceAll("[\\D]",""));
ieșire:
i=123;
j=123;
k=123;
Incearca codul asta l's într-adevăr de lucru.
int number = 0;
try {
number = Integer.parseInt(YourEditTextName.getText().toString());
} catch(NumberFormatException e) {
System.out.println("parse value is not valid : " + e);
}
Puteți utiliza următoarele pentru a analiza un șir la un număr întreg:
int valoare=număr Întreg.parseInt(textView.getText().toString());
(1) de intrare: 12 atunci se va lucra.. pentru că textview a luat 12 număr de ca "12" string.
(2) de intrare: "abdul" atunci se va arunca o excepție care este NumberFormatException. Deci, pentru a rezolva acest lucru, avem nevoie pentru a utiliza-a prins ca am spus de mai jos:
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());
}
De asemenea, poate doriți să consultați link-ul următor pentru mai multe informații: http://developer.android.com/reference/java/lang/Integer.html
Tu ar trebui să sub acoperire Șir să plutească. Acesta este de lucru.
float result = 0;
if (TextUtils.isEmpty(et.getText().toString()) {
return;
}
result = Float.parseFloat(et.getText().toString());
tv.setText(result);
De asemenea, puteți face o singură linie:
int hello = Integer.parseInt(((Button)findViewById(R.id.button1)).getText().toString().replaceAll("[\\D]", ""));
Citire la ordinea de executie
findViewById(R. id.button1)
((Buton)______)
a aruncat la "Vedere", ca un "Buton".GetText()
pentru a obține textul de intrare de la Buton.toString()
pentru a converti Caractere Diferite de la un Șir.Toții () " cu " "[\\D]"
pentru a înlocui toate Non Cifre, Caractere cu "" (nimic)Sunt disponibile metode de Extensie pentru a analiza acestora în alte tipuri primitive.
"și 10".toInt()
"și 10".toLong()
"adevărat".toBoolean()
"10.0".toFloat()
"10.0".toDouble()
"și 10".toByte()
"și 10".toShort()
String num = "10";
Integer.parseInt(num );
Există cinci moduri de a converti Prima Cale :
String str = " 123" ;
int i = Integer.parse(str);
output : 123
Al doilea mod :
String str = "hello123world";
int i = Integer.parse(str.replaceAll("[\\D]" , "" ) );
output : 123
A Treia Cale :
String str"123";
int i = new Integer(str);
output "123
Cea De-A Patra Modalitate :
String str"123";
int i = Integer.valueOf(Str);
output "123
Cea De-A Cincea Modalitate :
String str"123";
int i = Integer.decode(str);
output "123
Ar putea fi și alte modalități de Dar asta's ce-mi amintesc acum