2013-04-08 2 views
0

다음과 같이 구문 분석하는 "\/Date(588657600000-0400)\/" 형식의 DOB 문자열을 가져옵니다.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) : java.lang.Long.invalidLong (Long.java:125) 04-08 22 : 59 : 17.423 : E/AndroidRuntime (4175) : 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을 사용하십시오. == 연산자는 객체 참조가 동일한 지 비교합니다. null를 테스트 할 때 target 참조 null이 아니라고 당신이 보장되기 때문에

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

당신은 제대로 ==을 사용하고 있습니다. 확인하기위한 바로 가기로

+1

관련 : http://stackoverflow.com/q/3321526/139010 –

+0

난에서 오류가 발생하고 이 점 ... long millis = Long.parseLong (target.substring (target.indexOf ("(") + 1, target.indexOf ("-"))) // – theJava

+0

대상에 대해 생각해보십시오. – Simon

0

문자열 당신은 또한 사용할 수 있습니다 ""null 또는 경우

StringUtils.isEmpty(target)

관련 문제