2012-02-06 3 views
2

문자열을 백 슬래시로 분할하려고하는데 문제가 있습니다. 내가 옳은 표현을 누군가가 내가 한 짓을 읽고 내 문제를 말해 줄 수 있겠는가?Java - 역 슬래시 ()로 문자열 분할하기


package taskstodo; 

public class Task { 
    StringBuilder name; 
    StringBuilder note; 
    StringBuilder date; 

    void setName(String name) { 
     this.name = new StringBuilder(name); 
    } 
    void setNote(String note) { 
     this.note = new StringBuilder(note); 
    } 
    boolean dateIsValid() { 
     String dateStr = date.toString(); 
     String[] numbers = (dateStr.split("[\\\\]")); 
     for(String num : numbers) { 
      System.out.println(num); 
      if ((num.length()) != 2) { 
       return false; 
      } 
      return true; 
     } 
     return true; 
    } 
    void setDate(String date) { 
     this.date = new StringBuilder(date); 
    } 
} 

패키지 taskstodo;

공용 클래스 TasksToDo {

public static void main(String[] args) { 
    Task myTask = new Task(); 
    myTask.setDate("02/03/20"); 
    System.out.println(myTask.dateIsValid()); 
    Task myTask2 = new Task(); 
    myTask2.setDate("23/45/6001"); 
    System.out.println(myTask2.dateIsValid()); 
} 

}


TasksToDo 클래스는 작업 클래스를 테스트합니다.

02 
03 
20 
true 
23 
45 
6001 
false 

을하지만 반환 :

그것은 반환해야

02/03/20 
false 
23/45/6001 
false 
+2

구분 기호는 "/"가 아니고 "\"아니요? – talnicolas

+0

난독증이있을 수 있습니다. –

+0

대신에 정규 표현식으로 날짜 형식의 유효성을 검사해야합니다 :-) – unludo

답변

5

당신은 백 슬래시 \으로 분할하고 싶지만 당신이 당신의 테스트 케이스에 슬래시 /에 전달하는 말. 어떻게 작동 할 것이라고 기대할 수 있습니까?!

public static void main(String[] args) { 
    Task myTask = new Task(); 
    myTask.setDate("02\\03\\20"); 
    System.out.println(myTask.dateIsValid()); 
    Task myTask2 = new Task(); 
    myTask2.setDate("23\\45\\6001"); 
    System.out.println(myTask2.dateIsValid()); 
} 
+0

감사합니다! 나는 그것을 어떻게 놓쳤는가? 고마워 :) –

+0

@sudsiv 그것은 IT에서 항상 발생합니다 :) – adarshr

1

당신이 JDK 당신을 위해 구문 분석을 수행 할 수있는 날짜를 확인하려고합니다.

try 
     { 
      new SimpleDateFormat("dd/MM/yyyy").parse("21/16/2000"); 
      return true; 
     } 
     catch (ParseException exception) 
     { 
      return false; 
     } 
+0

아. 큰. 감사. –

관련 문제