Массив обязателен, но найден Int - PullRequest
0 голосов
/ 11 января 2012

Доброе утро, господа,

У меня возникла проблема при преобразовании кода для другого проекта, и я надеялся на небольшую помощь.В методе «readFile» я пытаюсь разобрать строку в целые числа при чтении файла.Тем не менее, он дает мне ошибку «массив найден, но требуется int»

Любая помощь приветствуется,

С уважением, Майк

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();
         }



}

Ответы [ 2 ]

3 голосов
/ 11 января 2012

matrix - это массив типа int, что означает, что matrix[lineCount] является целым числом.

Вы пытаетесь сделать matrix[lineCount][i], который получает место i целого числа.Вот почему вы получаете эту ошибку.

Я думаю, вы хотели, чтобы матрица была int[][] matrix = new int[10][10];

1 голос
/ 11 января 2012
matrix[lineCount][i] = Integer.parseInt(numbers[i]);  

неверно.

Должно быть либо

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

ИЛИ

matrix[i]= Integer.parseInt(numbers[i]); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...