Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的parseInt将结果转换为NumberFormatException_Java_Numberformatexception - Fatal编程技术网

Java中的parseInt将结果转换为NumberFormatException

Java中的parseInt将结果转换为NumberFormatException,java,numberformatexception,Java,Numberformatexception,我正在尝试从属性文件加载信息,代码如下: int minute = Integer.parseInt(prop.getProperty("delay")); int hour = Integer.parseInt(prop.getProperty("period")); 虽然第一行工作正常,但第二行我尝试加载int变量时抛出了NumberFormatException。具体的异常消息是: java.lang.NumberFormatException: For input string: "1

我正在尝试从属性文件加载信息,代码如下:

int minute = Integer.parseInt(prop.getProperty("delay"));
int hour = Integer.parseInt(prop.getProperty("period"));
虽然第一行工作正常,但第二行我尝试加载int变量时抛出了NumberFormatException。具体的异常消息是:

java.lang.NumberFormatException: For input string: "1 "
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
目前,在我的属性文件中,延迟值为1,周期值为5


当我运行这个程序并打印分钟和小时的值时,它工作正常,但在我的Tomcat日志控制台中发生了上述异常。请帮我解决这个问题好吗?提前谢谢

属性中似乎有尾随空格(因为您在
异常中得到
“1”
)。您可以调用它,它返回字符串的副本,并省略前导和尾随空格。差不多

int minute = Integer.parseInt(prop.getProperty("delay").trim());
int hour = Integer.parseInt(prop.getProperty("period").trim());
试试这个

    String delay = prop.getProperty("delay");
    String period = prop.getProperty("period");
    int minute = Integer.parseInt((delay != null && !delay.trim().isEmpty()) ? delay : "0");
    int hour = Integer.parseInt((period != null && !period.trim().isEmpty()) ? period : "0");

prop.getProperty(“delay”)
prop.getProperty(“period”)
可能为null或空,因此您必须检查格式化字符串是否不应为null或空,并且不应包含任何空格

尝试替换非数值:

int minute = Integer.parseInt(prop.getProperty("delay").replaceAll("\\D",""));
int hour = Integer.parseInt(prop.getProperty("period").replaceAll("\\D",""));

从prop.getProperty(“延迟”)和prop.getProperty(“期间”)返回的值是多少?请检查“1”中是否有额外的空格延迟为1,期间为5@YeWin,但我确信在我的配置中这些值之后没有任何额外的空间file@BornForJava可能属性文件“1”中的1后面有空格,这会导致NumberFormatException。请看看这个