2013-04-08 64 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)

相关问题