如何将字符串转换为整数?
我有一个文本框,让用户输入一个数字:
EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
这个值被赋值给字符串hello。
我想把它转换成一个整数,这样我就能得到他们输入的数字;稍后将在代码中使用它。
是否有方法将EditText转换为整数?这样就跳过了中间人。如果不是,字符串到整数就可以了。
如何将字符串转换为整数?
我有一个文本框,让用户输入一个数字:
EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
这个值被赋值给字符串hello。
我想把它转换成一个整数,这样我就能得到他们输入的数字;稍后将在代码中使用它。
是否有方法将EditText转换为整数?这样就跳过了中间人。如果不是,字符串到整数就可以了。
当前回答
有五种转换方法 第一种方法:
String str = " 123" ;
int i = Integer.parse(str);
output : 123
第二种方式:
String str = "hello123world";
int i = Integer.parse(str.replaceAll("[\\D]" , "" ) );
output : 123
第三种方式:
String str"123";
int i = new Integer(str);
output "123
第四种方式:
String str"123";
int i = Integer.valueOf(Str);
output "123
第五种方式:
String str"123";
int i = Integer.decode(str);
output "123
可能还有其他办法 但我现在只记得这些
其他回答
您可以使用以下方法将字符串解析为整数:
int value = Integer.parseInt (textView.getText () .toString ());
(1)输入:12然后它将工作..因为textview已经把这个12数字作为“12”字符串。
(2)输入:"abdul",那么它将抛出一个异常,即NumberFormatException。 所以为了解决这个问题,我们需要使用try catch,就像我下面提到的:
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());
}
你也可以参考以下链接了解更多信息: http://developer.android.com/reference/java/lang/Integer.html
使用正则表达式:
String s="your1string2contain3with4number";
int i=Integer.parseInt(s.replaceAll("[\\D]", ""));
输出: 我= 1234;
如果你需要第一个数字组合,那么你应该尝试下面的代码:
String s="abc123xyz456";
int i=NumberFormat.getInstance().parse(s).intValue();
输出: 我= 123;
科特林
可以使用Extension方法将它们解析为其他基本类型。
“10”toInt(。) “10”请(。) “真正的”toBoolean()。 “10 . 0”toFloat()。 “10 . 0”toDouble()。 “10”toByte(。) “10”toShort(。)
Java
String num = "10";
Integer.parseInt(num );
请参阅Integer类和静态parseInt()方法:
http://developer.android.com/reference/java/lang/Integer.html
Integer.parseInt(et.getText().toString());
你将需要捕捉NumberFormatException,尽管在解析时遇到问题,所以:
int myNum = 0;
try {
myNum = Integer.parseInt(et.getText().toString());
} catch(NumberFormatException nfe) {
System.out.println("Could not parse " + nfe);
}
使用正则表达式是做到这一点的最好方法,正如ashish sahu已经提到的那样
public int getInt(String s){
return Integer.parseInt(s.replaceAll("[\\D]", ""));
}