java.lang.NumberFormatException:无效的长:“”

时间:2013-04-08 22:48:58

标签: java android

我以这种格式"\/Date(588657600000-0400)\/"获取DOB字符串,我将解析如下。

String target = custom.getDOB();
if (target == null || target == "") {
    holder.item3.setText("-");
} else {
    long millis = Long.parseLong(target.substring(
                 target.indexOf("(") + 1, target.indexOf("-")));
    java.text.DateFormat df = new SimpleDateFormat("MM-dd-yyyy", Locale.ENGLISH);
    holder.item3.setText(df.format(new Date(millis)));
}

我收到此错误“04-08 22:44:09.864:E / AndroidRuntime(3837):java.lang.NumberFormatException:无效长:”“。我之前正在检查,我的String对象是否包含{{1并将其设置为“ - ”,但我仍然得到此异常。

更新

  

04-08 22:59:17.423:E / AndroidRuntime(4175):   java.lang.NumberFormatException:无效长:“”04-08 22:59:17.423:   E / AndroidRuntime(4175):at java.lang.Long.invalidLong(Long.java:125)   04-08 22:59:17.423:E / AndroidRuntime(4175):at   java.lang.Long.parseLong(Long.java:346)04-08 22:59:17.423:   E / AndroidRuntime(4175):at java.lang.Long.parseLong(Long.java:319)

我将null和空字符串文字检查更改为此,但我仍然收到此错误。

null or ""

3 个答案:

答案 0 :(得分:6)

使用String#equals比较字符串值; ==运算符比较对象引用是否相等。

if (target == null || target.equals("")) {

您在测试==时正确使用null,因为您确保target引用不是null

答案 1 :(得分:0)

作为检查String是否为空或“”的快捷方式,您也可以使用

StringUtils.isEmpty(target)

答案 2 :(得分:0)

Thread.sleep