2017-02-15 3 views
-1

it's giving a DateTimeException.All the input values are integers. DateTimeException을 제공합니다. 모든 입력 값은 정수입니다. 2D 배열에서 LocalDate의 매개 변수를 입력하면 예외가 발생합니다. 왜?java LocalDate 데이터 형식, 2D 배열의 매개 변수를 LocalDate에 입력해야하는 경우 예외가 발생합니다.

Scanner sc=new Scanner(System.in); 
int[][] arr=new int[3][2]; 
for(int j=0;j<2;j++){ 
    for(int i=0;i<3;i++){ 
     while(sc.hasNext()){ 
      arr[i][j]=sc.nextInt(); 
      // System.out.println(arr[i][j]); 
     } 
     LocalDate ret1=LocalDate.of(arr[2][j],arr[1][j],arr[0][j]); 
     System.out.println(ret1); 
    } 

} 
+1

는 편곡의 당신의 가치를 보여주십시오 [2] [j], arr [1] [j], arr [0] [j] 그리고 발생한 예외를 제공합니다. – Adam

+0

'System.out.println (arr [i] [j])'주석을 삭제하면 알 수 있습니다. –

+0

어쨌든 java.time.DateTimeException이 발생합니다. 모든 입력은 정수 값입니다. 값은 배열에 저장되지만 LocalDate에 전달 될 때 예외가 발생합니다. @adam – aayushi

답변

0

이 시도 :

Scanner sc = new Scanner(System.in); 
int[][] arr = new int[3][2]; 
for(int j = 0; j < 2; j++) { 
    for(int i = 0; i < 3; i++) { 
     arr[i][j] = sc.nextInt(); 
     // System.out.println(arr[i][j]); 
    } 
    LocalDate ret1 = LocalDate.of(arr[2][j], arr[1][j], arr[0][j]); 
    System.out.println(ret1); 
} 

당신은 System.in와 조합 sc.hasNext() 방법이 필요하지 않습니다. 또한 각 필수 값을 배열에 할당 한 후에 LocalDate 객체를 만들어야합니다. (그래서 처음 for-loop에서). 당신은 내가 아니라 전체의 Line을 주사하는 것 하나의 줄에 전체 날짜를 입력합니다

, 그리고 정수로 남아있는 문자열을 구문 분석을 분할 :

Scanner sc = new Scanner(System.in); 
int[][] arr = new int[2][3]; 
for(int j = 0; j < 2; j++) { 
    String[] line = scan.nextLine().split("\\D+"); // Splits the line when there is at least one non-digit. (So you could also write something like '1 day 8th month _1776_', it just has to be in this particular order.) 
    for(int i = 0; i < 3; i++) { 
     arr[j][i] = Integer.parseInt(line[i]); 
    } 
    LocalDate date = LocalDate.of(arr[j][2], arr[j][1], arr[j][0]); 
    System.out.println(date); 
} 
관련 문제