Android:将String转换为int

我只是试图将从条形码扫描器生成的string转换为int,以便通过获取余数来生成一组整数。 到目前为止我已经尝试过:

int myNum = 0; try { myNum = Integer.parseInt(myString.getText().toString()); } catch(NumberFormatException nfe) { } 

 Integer.valueOf(mystr); 

 int value = Integer.parseInt(string); 

第一个给我的错误:方法getText()未定义的typesstring,而最后两个没有任何编译错误,但应用程序崩溃时立即调用。 我认为这是与我的条形码扫描意图的方法,但我把它放入OnCreate,仍然有错误。

Related of "Android:将String转换为int"

更改

 try { myNum = Integer.parseInt(myString.getText().toString()); } catch(NumberFormatException nfe) { 

 try { myNum = Integer.parseInt(myString); } catch(NumberFormatException nfe) { 

这已经是一个string? 除去getText()调用。

 int myNum = 0; try { myNum = Integer.parseInt(myString); } catch(NumberFormatException nfe) { // Handle parse error. } 

你只需要编写一行代码将你的string转换为int。

  int convertedVal = Integer.parseInt(YOUR STR); 

使用正则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式:

 String s="your1string2contain3with4number"; int i=Integer.parseInt(s.replaceAll("[\\D]", "")) 

输出:i = 1234;

如果你需要第一个号码组合,那么你应该尝试下面的代码:

 String s="abc123xyz456"; int i=((Number)NumberFormat.getInstance().parse(s)).intValue() 

输出:i = 123;

条码通常由大数字组成,所以我认为你的应用程序崩溃是因为你试图转换为int的string的大小。 你可以使用BigInteger

 BigInteger reallyBig = new BigInteger(myString); 

如果整数值为零或从零开始(在这种情况下,第一个零将被忽略),则不能转换为string。 尝试改变。

 int NUM=null;