簡體   English   中英

java.lang.NumberFormatException:無效的長整數:“”

[英]java.lang.NumberFormatException: Invalid long: “”

我正在以以下格式解析"\\/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對象是否包含null or ""並進行設置它改為“-”,但仍然出現此異常。

更新:

04-08 22:59:17.423:E / AndroidRuntime(4175):java.lang.NumberFormatException:無效的長整數:“” 04-08 22:59:17.423:E / AndroidRuntime(4175):位於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):位於java.lang.Long.parseLong(Long.java:319)

我將我的null和空字符串文字檢查更改為此,但仍然收到此錯誤。

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

使用String#equals比較字符串值; ==運算符比較對象引用是否相等。

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

測試null ,您正確使用了== ,因為您確保target引用不為null

作為檢查String是否為null或“”的快捷方式,您還可以使用

StringUtils.isEmpty(target)

  Use Try and catch 

      String  values=Util.getStringFromSP(getActivity(),"time");
        try {
        PERIOD_MS = Long.parseLong(values);
    } catch (Exception e) {

        Log.d("time", "" + values);
        if (PERIOD_MS == 0) {
            PERIOD_MS = 1000;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM