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的主要内容,如果未能解决你的问题,请参考以下文章