如何将字符串转换为整数?
我有一个文本框,让用户输入一个数字:
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
一个整数?那将跳过中间人。如果没有,字符串到整数就可以了。
请参阅 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);
}
int in = Integer.valueOf(et.getText().toString());
//or
int in2 = new Integer(et.getText().toString());
使用正则表达式:
String s="your1string2contain3with4number";
int i=Integer.parseInt(s.replaceAll("[\\D]", ""));
输出:i=1234;
如果您需要第一个数字组合,那么您应该尝试以下代码:
String s="abc123xyz456";
int i=NumberFormat.getInstance().parse(s).intValue();
输出:i=123;
使用正则表达式:
int i=Integer.parseInt("hello123".replaceAll("[\\D]",""));
int j=Integer.parseInt("123hello".replaceAll("[\\D]",""));
int k=Integer.parseInt("1h2el3lo".replaceAll("[\\D]",""));
输出:
i=123;
j=123;
k=123;
正如ashish sahu已经提到的那样,使用正则表达式是最好的方法
public int getInt(String s){
return Integer.parseInt(s.replaceAll("[\\D]", ""));
}
Try this code it's really working.
int number = 0;
try {
number = Integer.parseInt(YourEditTextName.getText().toString());
} catch(NumberFormatException e) {
System.out.println("parse value is not valid : " + e);
}
将字符串转换为 int 的最佳方法是:
EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
int converted=Integer.parseInt(hello);
您可以使用以下内容将字符串解析为整数:
int value=Integer.parseInt(textView.getText().toString());
(1) input: 12 那么它将起作用..因为 textview 已将此 12 数字作为“12”字符串。
(2) input: "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
您应该将字符串转换为浮动。这是工作。
float result = 0;
if (TextUtils.isEmpty(et.getText().toString()) {
return;
}
result = Float.parseFloat(et.getText().toString());
tv.setText(result);
你也可以用一行来做:
int hello = Integer.parseInt(((Button)findViewById(R.id.button1)).getText().toString().replaceAll("[\\D]", ""));
从执行顺序读取
findViewById(R.id.button1)
((Button)______)
转换View
为Button
.GetText()
以从 Button 获取文本条目.toString()
以将 Character Varying 转换为 String.ReplaceAll()
with"[\\D]"
将所有非数字字符替换为“”(无)Integer.parseInt()
grab 并从仅数字字符串中返回一个整数。有五种方法可以转换 The First Way :
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
可能还有其他方法但这就是我现在记得的
更简单的方法是使用 so 的decode
方法,Integer
例如:
int helloInt = Integer.decode(hello);
有可用的扩展方法将它们解析为其他原始类型。
"10".toInt()
"10".toLong()
"true".toBoolean()
"10.0".toFloat()
"10.0".toDouble()
"10".toByte()
"10".toShort()
String num = "10";
Integer.parseInt(num );