简体   繁体   中英

Array Required, but found Int

I'm running into an issue when converting some code for another project and was hoping for a bit of help. In the 'readFile' method, I am trying to parse a String to integers when I read the file. However, it is giving me the error 'array found, but int required'

import java.util.*;
import java.io.*;


public class JavaApplication1 
{
static int [] matrix = new int [10];
static Scanner input = new Scanner(System.in);

public static void main(String[] args) throws IOException
{
   String fileName = "Integers.txt";
   
   // read the file
   readFile(fileName);
   
   // print the matrix
   printArray(fileName, matrix);
   
        
}


// Read File
        public static void readFile(String fileName) throws IOException
        {
            String line = "";
            
            FileInputStream inputStream = new FileInputStream(fileName);
            Scanner scanner = new Scanner(inputStream);
            DataInputStream in = new DataInputStream(inputStream);
            BufferedReader bf = new BufferedReader(new InputStreamReader(in));
             
            int lineCount = 0;
            String[] numbers;
            while ((line = bf.readLine()) != null)
            {
                numbers = line.split(" ");
                for (int i = 0; i < 10; i++)
                {
                matrix[lineCount][i] = Integer.parseInt(numbers[i]);
                }
                lineCount++;
            }
            bf.close();
        }

    public static void printToFile(String fileName, String output) throws IOException
{
    java.io.File file = new java.io.File(fileName);
    try (PrintWriter writer = new PrintWriter(file)) 
    {
        writer.print(output);
    }
}
    
    public static void printArray(String fileName, int [] array)
        {
            System.out.println("The matrix is:");
            
             for (int i = 0; i < 10; i++)
                {
                    System.out.println();
                }
             System.out.println();
         }

    

}

matrix is an array of type int , which means matrix[lineCount] is an int.

You are tryng to do matrix[lineCount][i] which is getting the place i of an int. That is why you are getting that error.

I guess you wanted matrix to be int[][] matrix = new int[10][10];

matrix[lineCount][i] = Integer.parseInt(numbers[i]);  

is wrong.

Should be either

matrix[lineCount]= Integer.parseInt(numbers[i]); 

OR

matrix[i]= Integer.parseInt(numbers[i]); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM