在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]", "")); 

从执行顺序读取

  1. 使用findViewById(R.id.button1)
  2. 使用((Button)______)View作为Button进行投射
  3. 调用.GetText()从Button获取文本条目
  4. 调用.toString()将Character .toString()转换为String
  5. "[\\D]"调用.ReplaceAll()"[\\D]"replace所有的非数字字符(无)
  6. 调用Integer.parseInt()从Digit-onlystring中获取并返回一个整数。

更简单的方法是使用Integerdecode方法,例如:

 int helloInt = Integer.decode(hello);