试图将String转换为整数。我正在使用libgdx&我已经尝试了一些做这件事的方法。我一直得到空的回报。
这是我最近尝试过的最简单方法。
String x = textfield_1.getText();
String y = textfield_2.getText();
Integer integerfield_1 = Integer.getInteger(textfield_1.getText(), null);
if (integerfield_1 == null) {
System.out.println("Incorrect Integer (Integer Only)");
} else {
System.out.println("Please Enter The Position");
//TODO Fill GUI Form.
}
任何人有任何提示吗?
答案 0 :(得分:2)
查看Integer.getInteger(String, Integer)
的JavaDocs一段时间
返回:
属性的整数值。
或者从长远来看......
返回具有指定系统属性的整数值 名称。第一个参数被视为系统属性的名称。 系统属性可通过 System.getProperty(java.lang.String)方法。这个字符串的值 然后将属性解释为整数值,如下所示 Integer.decode方法和表示此值的Integer对象 归还。
- 如果属性值以两个ASCII字符0x或ASCII字符#开头,后面没有减号,那么其余的 它被解析为十六进制整数,与方法完全相同 valueOf(java.lang.String,int)with radix 16。
- 如果属性值以ASCII字符0开头,后跟另一个字符,则将其解析为八进制整数,与 方法valueOf(java.lang.String,int)with radix 8.。
- 否则,属性值被解析为十进制整数,与方法valueOf(java.lang.String,int)的基数完全相同 10.
第二个参数是默认值。默认值为 如果没有指定名称的属性,则返回 属性没有正确的数字格式,或者如果指定的 name为空或null。
这不是你认为的那样......
相反,您应该使用Integer.parseInt(String)
,当NumberFormatException
的值无法转换为有效整数时,这会抛出String
...
例如......
String x = textfield_1.getText();
String y = textfield_2.getText();
try {
Integer integerfield_1 = Integer.parseInt(textfield_1.getText());
System.out.println("Please Enter The Position");
//TODO Fill GUI Form.
} catch (NumberFormatException exp) {
exp.printStackTrace();
System.out.println("Incorrect Integer (Integer Only)");
}
答案 1 :(得分:1)
如果我理解你,那么
Integer integerfield_1 = Integer.getInteger(textfield_1.getText(), null);
应该像Integer.parseInt(String)
这样 -
int integerfield_1 = 0;
try {
integerfield_1 = (x != null) ? Integer.parseInt(x.trim()) : 0;
} catch (NumberFormatException e) {
e.printStackTrace();
}
如果您真的想使用Integer
(包装器),那么您可以使用Integer.valueOf(String)
。
Integer integerfield_1 = null;
try {
integerfield_1 = (x != null) ? Integer.valueOf(x.trim()) : null;
} catch (NumberFormatException e) {
e.printStackTrace();
}