2017-02-15 16 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

ARRの自分の価値観を提示してください[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で)。

あなたは私ではなく、行全体をスキャンし、それを分割し、整数に残りの文字列を解析したい1つの行で全体の日付を入力する場合:

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); 
} 
関連する問題