在Android上将string转换为整数
如何将string转换为整数?
我有一个文本框我有用户input一个数字:
EditText et = (EditText) findViewById(R.id.entry1); String hello = et.getText().toString();
值被分配给stringhello
。
我想把它转换成一个整数,所以我可以得到他们input的数字; 它将在以后的代码中使用。
有没有办法让EditText
为一个整数? 那会跳过中间人。 如果不是,string到整数将会很好。
请参阅Integer类和静态parseInt()
方法:
http://developer.android.com/reference/java/lang/Integer.html
Integer.parseInt(et.getText().toString());
虽然在parsing时遇到问题,您将需要捕获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());
使用正则expression式:
String s="your1string2contain3with4number"; int i=Integer.parseInt(s.replaceAll("[\\D]", ""));
输出:i = 1234;
如果你需要第一个号码组合,那么你应该尝试下面的代码:
String s="abc123xyz456"; int i=NumberFormat.getInstance().parse(s).intValue();
输出:i = 123;
使用正则expression式:
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;
使用正则expression式是最好的方式,正如已经提到的阿什萨胡
public int getInt(String s){ return Integer.parseInt(s.replaceAll("[\\D]", "")); }
试试这个代码,它真的工作。
int number = 0; try { number = Integer.parseInt(YourEditTextName.getText().toString()); } catch(NumberFormatException e) { System.out.println("parse value is not valid : " + e); }
您可以使用以下内容将stringparsing为整数:
int value = Integer.parseInt(textView.getText()。toString());
(1) input: 12那么它将工作..因为textview已经把这个12号码作为“12”string。
(2)input: “abdul”,那么它将抛出一个NumberFormatExceptionexception。 所以要解决这个问题,我们需要使用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转换为int的最佳方法是:
EditText et = (EditText) findViewById(R.id.entry1); String hello = et.getText().toString(); int converted=Integer.parseInt(hello);
你应该隐藏string来浮动。 这是工作。
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.toString()
转换为String - 用
"[\\D]"
调用.ReplaceAll()
用"[\\D]"
replace所有的非数字字符(无) - 调用
Integer.parseInt()
从Digit-onlystring中获取并返回一个整数。
更简单的方法是使用Integer
的decode
方法,例如:
int helloInt = Integer.decode(hello);