2013-04-08 58 views
0

我得到這種格式的DOB字符串"\/Date(588657600000-0400)\/"我正在解析如下。java.lang.NumberFormatException:無效的長:「」

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):at java.lang.Long.parseLong() Long.java:346)04-08 22:59:17.423: E/AndroidRuntime(4175):在java.lang.Long.parseLong(Long.java:319)

我改變了我的空和空字符串文字檢查到這一點,但我仍然得到這個錯誤。

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

回答

6

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

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

您正確使用==null測試時,因爲你是確保您的target引用不是null

+1

相關:http://stackoverflow.com/q/3321526/139010 – 2013-04-08 22:52:10

+0

我在收到錯誤這點... long millis = Long.parseLong(target.substring(target.indexOf(「(」)+ 1,target.indexOf(「 - 」))); // – theJava 2013-04-08 23:02:38

+0

請考慮一下。 indexOf(「 - 」)return? – Simon 2013-04-08 23:08:31

0

至於檢查的快捷方式,如果字符串爲null或「」你也可以使用

StringUtils.isEmpty(target)

相關問題