Grazie ancora dell'assistenza, ma purtroppo il programma non ne vuole sapere di andare.
Infatti, sia nel tuo modo che in uno che ho pensato io, la variabile incrementoCaratteri rimane sempre a 0, mentre l'altra, incrementoNumeri, raggiunge il valore stabilito da me.
Posto adesso il codice :
codice:
import java.io.*;
import java.util.regex.*; //Libreria per le espressioni regolari utili per la verifica di ogni campo dei file
public class LetturaPacco
{
public void Leggi() throws IOException
{
//String[] ArrayContenuto = {"cartone", "plastica", "metallo"};
//String[] ArrayMateriale = {"fragile", "posta", "libri", "metallo"};
Pattern PatternContenuto = Pattern.compile("cartone|plastica|metallo");
Pattern PatternMateriale = Pattern.compile("fragile|posta|libri|metallo");
Pattern PatternNumeri = Pattern.compile("\\d");
//Pattern PatternRiga = Pattern.compile("\\d+ \\d+ \\d+ \\d+ (cartone|plastica|metallo) \\d+ (fragile|posta|libri|metallo) \\d+");
int incrementoNumeri = 0,incrementoCaratteri = 0; //Serve per verificare che tutto sia corretto nel file di testo
String path ="./src/Elenco Pacchi.pac";
FileReader fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
String linea = "";
while ((linea = br.readLine()) != null)
{
String[] CampiPacco = linea.split(" ");
for(int i = 0 ; i < CampiPacco.length ; i++)
{
/*if(PatternRiga.matcher(CampiPacco[i]).matches())
System.out.print(CampiPacco[i] + " ");
else
System.out.println("Il file presenta errori nei campi.");
}*/
if(i != 4 || i != 6)
{
if(PatternNumeri.matcher(CampiPacco[i]).matches())
incrementoNumeri++;
}
else
{
if(i == 4)
{
if(PatternContenuto.matcher(CampiPacco[i]).matches())
incrementoCaratteri++;
}
else
if(i == 6)
{
if(PatternMateriale.matcher(CampiPacco[i]).matches())
incrementoCaratteri++;
}
}
}
if(incrementoCaratteri == 2 && incrementoNumeri == 6)
{
for(int y = 0 ; y < CampiPacco.length ; y++)
System.out.print(CampiPacco[y]+ " ");
}
else
System.out.println("Il file presenta errori nei campi.");
}
//Per vedere se vengono incrementate le 2 variabili
System.out.println(incrementoCaratteri);
System.out.println(incrementoNumeri);
}
}