2017-09-02 42 views
0

我是計算機科學的初學者,在嘗試將整數從文本文件放入數組時遇到了一些麻煩。有在文本文件中七行的整數,並且每個線具有由空格分隔3點的整數,例如:從文本文件讀入數組,但沒有發生此類元素異常?

0 15 20 
100 25 96 
85 42 15 
52 63 47 
85 44 98 
41 55 74 
85 74 15 

我應該在每行中的三個號碼放置成三個不同的陣列,使得一個陣列將包含第一個數字,第二個數組包含第二個數字,第三個數組包含第三個數字,全部來自同一行。 我的代碼在下面,但是當它運行它時,我得到一個沒有這樣的元素異常,並且當我打印第一個數組時,它顯示存儲在數組第一位置的第一個數字,但其餘的數字是第二個數字的每一行。什麼是循環回事:(我將不勝感激任何類型的解釋

import java.io.*; 
    import java.util.Scanner; 
    import java.util.Arrays; 
    public class Trying{ 
    public static void main(String [] args){ 
    Scanner s=null; 
    int [] a= new int [7]; 
    int [] b= new int [7]; 
    int [] c= new int [7]; 
    int i=0; 
    try{ 
     s= new Scanner(new File("input.txt")); 
     while(s.hasNextLine()){ 
     String line=s.nextLine(); 
     Scanner cal= new Scanner(line); 
     a[i]=cal.nextInt(); 
     b[i]=cal.nextInt(); 
     c[i]=cal.nextInt(); 
     i++; 
     } 
    } 
    catch(Exception eee){ 
     eee.printStackTrace(); 
    } 
    System.out.println(Arrays.toString(a)); 
    } 
} 

回答

0

,就應該替換 「C [1] = s.nextInt();」?用「C [1] = CAL .nextInt();」我覺得你錯誤地使用在S掃描對象,而不是在CAL掃描對象

您還可以使用String.split()方法爲您的目的 而不是使用

String line=s.nextLine(); 
    Scanner cal= new Scanner(line); 
    a[i]=cal.nextInt(); 
    b[i]=cal.nextInt(); 
    c[i]=s.nextInt(); 

您可以試試這個:

String[] lines=s.nextLine().split(" "); 
    a[i]=Integer.parseInt(lines[0]); 
    b[i]=Integer.parseInt(lines[1]); 
    c[i]=Integer.parseInt(lines[2]); 
+0

謝謝!我其實並沒有注意到我正在調用掃描儀而不是校準掃描儀,但在這裏輸入它有點不對勁:)我會嘗試你所說的,所以每當我掃描一行時,我必須將它分開擺脫空間?我爲這個問題感到抱歉,正如我所說的,我幾乎沒有開始這個問題,也沒有人會問。 – xValentinax

相關問題