Android 我得到了这个错误:java.lang.NumberFormatException:对于输入字符串:"&引用;
基本上,当我尝试将字符串转换为int时,当没有任何字符串出现问题时,我遇到了这个错误,但“”仍然应该为null,或者“”并且我无法处理它。 例如,我想创建只有两个字段name和age的联系人,但只有name对我很重要Android 我得到了这个错误:java.lang.NumberFormatException:对于输入字符串:"&引用;,android,Android,基本上,当我尝试将字符串转换为int时,当没有任何字符串出现问题时,我遇到了这个错误,但“”仍然应该为null,或者“”并且我无法处理它。 例如,我想创建只有两个字段name和age的联系人,但只有name对我很重要 public class Contact { public String name; public int age; public Contact(String name) { this.name = name; } public Contact() { } pu
public class Contact {
public String name;
public int age;
public Contact(String name) {
this.name = name;
}
public Contact() {
}
public Contact(String name,int age) {
this.name = name;
this.age=age
}
}
在代码部分,出于某种原因,我需要用户添加新联系人,插入年龄并不重要。
用户提交后,我希望获得新的联系人
EditText editName=findviewByid(r.id.edit_name);
EditText editAge=findviewByid(r.id.edit_age);
.
.
.
当用户单击“提交”按钮时:
String name = editName.getText().toString().trim();
String age = editAge.getText().toString().trim();
Contact contact =new (name,Integer.parseInt(age));
若用户并没有输入年龄,我们得到了这个错误
java.lang.NumberFormatException: For input string: ""
由于Integer.parseInt的工作方式,您会看到此错误 从: 帕森特 在API级别1中添加了公共静态int-parseInt(字符串s) 解析 字符串参数为带符号的十进制整数 小说中的人物 字符串必须全部为十进制数字,但第一个字符可能 是ASCII减号“-”(“\u002D”)以指示负值或 表示正值的ASCII加号“+”(“\u002B”) 返回结果的整数值,就像参数和 基数10作为parseInt(java.lang.String)的参数提供, int)方法 参数s字符串:包含要使用的int表示形式的字符串 解析 返回int中由参数表示的整数值 十进制 如果字符串不包含 可解析整数。
您必须将一个带有数字的字符串传递给parseInt。根据
parseInt
的工作方式,这是正确的。您必须检查从文本视图收到的值是否为null
或empty
。你可以这样做:
String name = editName.getText().toString().trim();
String age = editAge.getText().toString().trim();
// You have to think about what value you want to give to your `age` variable in
// the case of `null`. This depends on you, I have given it a value of -1 just for
// demonstration. You also need to make sure that you only allow numeric input in
// your text field, or otherwise you need to make sure you can cast the provided
// input to an integer before using `parseInt`
int ageInt = !TextUtils.isEmpty(age) ? Integer.parseInt(age) : -1
Contact contact =new (name, ageInt);
你必须检查
empty
也因为empty
不是一个数字tanks,你是对的,但是当用户没有输入任何数字时,如果我不想强迫用户输入任何东西,我该如何处理它呢; 但是像以前一样出现了错误。我做了一个小编辑,发送ageInt
,而不是Contact
构造函数中的age
参数。希望它能解决你的问题。