Android:将String转换为int

时间:2011-07-26 20:11:40

标签: android string int

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

int myNum = 0;

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

} 

Integer.valueOf(mystr);

int value = Integer.parseInt(string); 

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

9 个答案:

答案 0 :(得分:45)

更改

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

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

答案 1 :(得分:9)

它已经是一个字符串?删除getText()调用。

int myNum = 0;

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

答案 2 :(得分:8)

您只需编写代码行将字符串转换为int。

 int convertedVal = Integer.parseInt(YOUR STR);

答案 3 :(得分:3)

使用正则表达式:

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;

答案 4 :(得分:2)

使用正则表达式:

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;

答案 5 :(得分:1)

条形码通常由大量数字组成,所以我认为您的应用程序因为您尝试转换为int的字符串大小而崩溃。你可以使用BigInteger

BigInteger reallyBig = new BigInteger(myString);

答案 6 :(得分:1)

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

int NUM=null;

答案 7 :(得分:0)

尝试

String t1 = name.getText().toString();
Integer t2 = Integer.parseInt(mynum.getText().toString());

boolean ins = myDB.adddata(t1,t2);

public boolean adddata(String name, Integer price)

答案 8 :(得分:-1)

//将字符串转换为整数

// String s = "fred";  // use this if you want to test the exception below


String s = "100"; 
try
{
  // the String to int conversion happens here
  int i = Integer.parseInt(s.trim());

  // print out the value after the conversion
  System.out.println("int i = " + i);
}
catch (NumberFormatException nfe)
{
  System.out.println("NumberFormatException: " + nfe.getMessage());
}