gpt4 book ai didi

java - 有效字符串的 NumberFormatException

转载 作者:行者123 更新时间:2023-11-30 04:36:57 25 4
gpt4 key购买 nike

这是我的下面的代码,它将字符串转换为长数据类型。

/**
* Parses a String into primitive long
* @param str
* @return
*/
public static long parseLong(String str){
try {
long result = Long.parseLong(str);
return result;
} catch(NumberFormatException ex){
//do nothing or log it
return 0L;
}
}

但是对于这个字符串2006-09-11 22:01:13,每当它传递给上面的parseLong方法时,我总是得到这个异常-

java.lang.NumberFormatException: For input string: "2006-09-11 22:01:13"

我需要将String 转换为Long。并且在这个方法中可以传递任何类型的String。因此,当我调试代码时,我发现它抛出了该字符串的异常 - “2006-09-11 22:01:13”。据我的理解,它不应该抛出异常,对吧?因为我们可以使用 Long.parseLong 方法将任何字符串转换为 long,对吧?

任何人都可以解释为什么我会收到此异常吗?因为我现在很困惑..:-/

最佳答案

含有特殊字符的字符串不能直接解析为long或int。如果您想将其解析为 long 或任何类型,请先将特殊字符替换为 ("")。

或者如果您想将上面的字符串解析为日期,则使用 simpleDate 格式,如下所示

SimpleDateFormat parser= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date d = null;

try {
d = parser.parse(str);
System.out.println("Parsed date is "+d);
} catch (java.text.ParseException e) {
e.printStackTrace();
}

那么输出将是解析日期为 IST 2006 年 9 月 11 日星期一 22:01:13

关于java - 有效字符串的 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com