import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class testing {
public static int[] populationVectorFicheiro;
public static double[] survivalMatrixFicheiro;
public static double[] birthMatrixFicheiro;
public static double[][] matrizLeslieNaoInterativo = new double[survivalMatrixFicheiro.length + 1][birthMatrixFicheiro.length];
public static void main(String[] args) throws FileNotFoundException {
readFileInfo();
}
public static double[] formarVetor(String[] line) {
double[] matrix = new double[line.length];
for (int i = 0; i < line.length; i++) {
String[] numbers = line[i].trim().split("=");
matrix[i] = Double.parseDouble(numbers[i]);
}
return matrix;
}
public static double[] getValores(String[] linha) {
double[] matriz = new double[linha.length];
for (int i = 0; i < linha.length; i++) {
String[] objeto = linha[i].split("=");
matriz[i] = Double.parseDouble(objeto[1]);
}
return matriz;
}
public static int[] getTotalPopulacao(String[] linha) {
int[] matriz = new int[linha.length];
for (int i = 0; i < linha.length; i++) {
String[] objeto = linha[i].split("=");
matriz[i] = Integer.parseInt(objeto[1]);
}
return matriz;
}
public static void readFileInfo() throws FileNotFoundException{
Scanner fileReader = new Scanner(new File("caes.txt"));
String[] primeiraLinha = fileReader.nextLine().trim().split(",");
populationVectorFicheiro = getTotalPopulacao(primeiraLinha);
String[] segundaLinha = fileReader.nextLine().trim().split(",");
survivalMatrixFicheiro = getValores(segundaLinha);
for (int i=0; i< survivalMatrixFicheiro.length;i++){
System.out.println(survivalMatrixFicheiro[i]);
}
String[] terceiraLinha = fileReader.nextLine().trim().split(",");
birthMatrixFicheiro = getValores(terceiraLinha);
double[][] leslieMatrix = fillMatrix(survivalMatrixFicheiro,birthMatrixFicheiro);
printMatrix(leslieMatrix);
}
public static void printMatrix(double[][] matriz) {
for (int i = 0; i < matriz.length; i++)//Cycles through rows
{
for (int j = 0; j < matriz[i].length; j++)//Cycles through columns
{
System.out.print(matriz[i][j] + " ");
}
System.out.println(); //Makes a new row
}
}
public static double[][] fillMatrix(double[] survivalMatrix, double[] birthMatrix) {
for (int i = 0; i < birthMatrix.length; i++) {
matrizLeslieNaoInterativo[0][i] = birthMatrix[i]; // preenche a primeira linha
}
int count = 0;
for (int i = 1; i < survivalMatrix.length + 1; i++) {
for (int j = 0; j < birthMatrix.length; j++) {
if (i == j + 1) {
matrizLeslieNaoInterativo[i][j] = survivalMatrix[count];
count++;
} else {
matrizLeslieNaoInterativo[i][j] = 0;
}
}
}
return matrizLeslieNaoInterativo;
}
}
我目前在 Java 中有此代码,用于对更大的项目进行一些测试。我正在尝试创建一些公共变量以在我的大型项目中使用,但在尝试在此处使用它们时一直出现错误。
每当我用其他公共变量作为参数创建一个公共矩阵时,我总是收到一个错误:
<块引用>线程“main”中的异常 java.lang.ExceptionInInitializerError 引起:java.lang.NullPointerException:无法读取数组 长度因为“testing.survivalMatrixFicheiro”为空
有没有办法解决这个问题?我需要将该矩阵保留为更大项目中其他方法的公共变量。