Hello,
I have a problem, I do a Scanner to a txt file, then I invoke a method to go to count the lines of this file, after I return the number of lines (to give the size to the String Array equations), I want to go back again go through the file to go to the rest of the problems, but when it goes into while (lerFicheiro.hasNext())
it jumps right out, because hasNext is already false.
Here's the code
static double[][] LerFicheiro () throws FileNotFoundException{
String ficheiro = "ficheiro_teste.txt";
Scanner lerFicheiro = new Scanner(new File(ficheiro));
double[][] matrizValores = new double[1][5];
String aux;
int num = 0;
int contador = 0; // variavel auxiliar para contar a linha que está a ser percorrida
int numLinhas = numeroLinhasMatriz(lerFicheiro);
String[] equacoes = new String[num];
while (lerFicheiro.hasNext()) { //enquanto o ficheiro tiver conteudo, vamos percorrer linha a linha
aux = lerFicheiro.nextLine();
if (!aux.isEmpty() && aux.length() > 0) {
aux = aux.toUpperCase();
if (aux.contains("Z")){
aux = lerFicheiro.nextLine();
}
int posX1 = aux.indexOf("X");
int posX2 = aux.indexOf("X", posX1+1);
int posB = aux.indexOf("=");
String valorX1 = valoresX(posX1, aux); //valor do X1 no ficheiro
String valorX2 = valoresX(posX2, aux); //valor do X2 no ficheiro
String valorB = matrizInsereB(posB, aux); //valor do B no ficheiro
/*System.out.println("x1 " + j);
System.out.println("x2 " + k);
System.out.println("b "+ b);*/
String equacao = "";
if(valorX1.equals("1")){
valorX1 = "x";
}
if(valorX2.equals("0")){
equacao = valorX1 + valorB + " y_0";
}
else if (valorX1.equals("0")){
equacao = "(" + valorB + "/" + valorX2 + ")";
}else {
equacao = "("+ valorX1 + "/" + valorX2 + ")*x+(" + valorB + "/" + valorX2 + ")";
}
equacoes[contador] = equacao;
contador++;
}
}
for (int i = 0; i < equacoes.length; i++){
System.out.println("posicao "+i +" "+equacoes[i]);
}
return matrizValores;
}
static int numeroLinhasMatriz(Scanner ler) {
String aux;
int nFuncoes = 0;
while (ler.hasNext()) {
aux = ler.nextLine();
if (aux.contains("=") || aux.contains("≤")) {
nFuncoes++;
}
if (aux.contains("Z")){
nFuncoes--;
}
}
return nFuncoes;
}
If you can help me thank you