Android:将 String 转换为 int

Posted

技术标签:

【中文标题】Android:将 String 转换为 int【英文标题】:Android: converting String to int 【发布时间】:2011-10-13 17:45:06 【问题描述】:

我只是想将条形码扫描仪生成的字符串转换为 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 并仍然出现错误。

【问题讨论】:

你能打印出myString的值吗?你确定它包含一个整数(只有数字,不大于2^31)?应用崩溃时是否出现异常? 您好,您知道如何将String转换为Cursor吗?我看到了this,但我看不懂。 【参考方案1】:

改变

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

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

【讨论】:

【参考方案2】:

已经是字符串了?删除 getText() 调用。

int myNum = 0;

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

【讨论】:

【参考方案3】:

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

 int convertedVal = Integer.parseInt(YOUR STR);

【讨论】:

【参考方案4】:

使用正则表达式:

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;

【讨论】:

好吧,如果你想那样做,那就用 \\D+ 而不是 [\\D],但是如果有浮点数的话,就会弄得一团糟。例如12.34 将导致 1234。所以我宁愿做 replaceAll("[^\d.]+","")【参考方案5】:

使用正则表达式:

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;

【讨论】:

我使用了这两种方法,但第二种方法有效,但它完全改变了价值!字符串值“4307764028”=> 12796732【参考方案6】:

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

BigInteger reallyBig = new BigInteger(myString);

【讨论】:

【参考方案7】:

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

int NUM=null;

【讨论】:

int 不是对象,所以不能为空! 好吧,如果是这样的话,那么我想微软只在我的视觉工作室中启用了它。【参考方案8】:

试试这个

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)

【讨论】:

这种方式是您将 mynum 插入数据库的方式,布尔部分是您在数据库中插入数据然后创建 if-else 条件以检查数据是否已插入的方式,请注意确保您的添加数据在您的数据库处理程序中具有正确的参数【参考方案9】:

// 将字符串转换为整数

// 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());

【讨论】:

以上是关于Android:将 String 转换为 int的主要内容,如果未能解决你的问题,请参考以下文章

Android如何将int转换为String? [复制]

Android:将 String 转换为 int

怎么将int数据转换成String数据呢??

如何将string类型的数字转换成int

String与整数和数组之间的转换

C++ 将 int 和 string 转换为 char*