从文本文件中读取内容,并将其存储到一个数组

问题描述:

我有一个包含具有这些值从文本文件中读取内容,并将其存储到一个数组

5 5 
39 95 99 56 41 
88 8 1 48 75 
3 58 13 54 80 
92 72 74 25 86 
30 38 3 21 2 

我有添加到他们的阵列,并显示最低值的5×5表文本文档(这是1)并告诉最低值的位置(第1行第2列)。

public static void main(String[] args) 
{ 
    Scanner input; 
    File fileIn = new File("src/array2d/array2dtest1.txt"); 
    System.out.println(fileIn.getAbsolutePath()); 

    int[][] array = new int[5][5]; 
    for(int row = 0;row<array.length;row++) {int[] column = array[row]; 
    { 
     for(int columnIndex = 0; columnIndex<column.length; columnIndex++); 
    } 


    } 
    try 
    { 

     input = new Scanner(fileIn); 
    } 
    catch (FileNotFoundException e) 
    { 

     System.out.println(fileIn.getName() + " is not found."); 
     return; 
    } 
    input.close(); 
} 

}

此代码实际存储您输入到一个数组。

public static void main(String[] args) { 
      Scanner input; 
      File fileIn = new File("src/array2d/array2dtest1.txt"); 
      System.out.println(fileIn.getAbsolutePath()); 

      int[][] array = new int[5][5]; 

      try 
      { 

       input = new Scanner(fileIn); 
       String values = input.nextLine(); 
       String[] value = values.split("\\s+"); 
       int index = 0; 
       for(int row = 0;row < 5;row++) 
       { index = row; 
        for(int col = 0 ; col < 5; col++){ 
          array[row][col] = Integer.parseInt(value[index*5 + col]); 
        } 
       } 
      } 
      catch (FileNotFoundException e) 
      { 

       System.out.println(fileIn.getName() + " is not found."); 
       return; 
      } 
      input.close(); 
     } 

从@ vikasn91使用的答案,我编辑它有点值正确分配到数组,在数组中查找的最低数量和其位置:

try { 

     input = new Scanner(fileIn); 
     int lowestCol = 0; 
     int lowestRow = 0; 
     int lowest = 0; 

     for (int row = 0; row < 5; row++) { 
      String values = input.nextLine(); 
      String[] value = values.split("\\s+"); 
      for (int col = 0; col < 5; col++) { 
       array[row][col] = Integer.parseInt(value[col]); 

       if (row == 0 && col == 0) { 
        lowest = array[row][col]; 
       } else if (array[row][col] < lowest) { 
        lowestCol = col; 
        lowestRow = row; 
        lowest = array[lowestRow][lowestCol]; 
       } 
      } 
     } 

     System.out.println("Lowest number: " + lowest); 
     System.out.println("Found in row: " + lowestRow + ", col: " + lowestCol); 
    } catch (FileNotFoundException e) { 

     System.out.println(fileIn.getName() + " is not found."); 
     return; 
    } 
    input.close(); 

public static void main(String[] args) 
{ 
    Scanner input; 
    File fileIn = new File("array2dtest1.txt"); 
    System.out.println(fileIn.getAbsolutePath()); 
    try 
    { 
     input = new Scanner(fileIn); 
     int row = input.nextInt(); 
     int column = input.nextInt(); 
     int min = Integer.MAX_VALUE; 
     int val; 
     int minR=0,minC=0; 

     for(int i=0;i<row;i++){ 
      for(int j=0;j<column;j++){ 
       val = input.nextInt(); 
       if(val<min){ 
        min = val; 
        minR = i; 
        minC = j; 
       } 
      } 
     } 
     System.out.println("Min Value is " + min + "\nat position (" + minR + "," + minC + ")"); 
    } 
    catch (FileNotFoundException e) 
    { 
     System.out.println(fileIn.getName() + " is not found."); 
     return; 
    } 
    input.close(); 
} 

如果”重新使用扫描器,您不需要直接拆分或解析整数。默认分隔符是空格。

Scanner s = new Scanner(new FileReader("src/array2d/array2dtest1.txt")); 
int numRows = s.nextInt(); 
int numCols = s.nextInt(); 
int[][] array = new int[numRows][numCols]; 
int least = Integer.MAX_VALUE; 
int leastRow = -1; 
int leastCol = -1; 
for(int r = 0; r < numRows; r++) { 
    for(int c = 0; c < numCols; c++) { 
     if((array[r][c] = s.nextInt()) < least) { 
      leastRow = r; 
      leastCol = c; 
     } 
    } 
}