Android:将String转换为int



(6)

我只是试图将从条形码扫描器生成的字符串转换为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并仍然得到错误。


使用正则表达式:

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;

使用正则表达式:

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;


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

int myNum = 0;

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

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

 int convertedVal = Integer.parseInt(YOUR STR);

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

BigInteger reallyBig = new BigInteger(myString);

试试这个

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)




int