Ciao a tutti ragazzi, mi sono appena iscritto in quanto ho bisogno di un aiuto in un progetto che sto realizzando per l'università, precisamente per un esame di Programmazione.
All'interno del programma, mi sono fermato ad un punto in cui devo fare la verifica se un file di testo è formattato secondo una grammatica che ci ha dato il professore.
Ovvero, io ho un file di testo del genere :
1 10 30 40 cartone 1200 fragile 1
2 20 20 30 plastica 450 posta 2
3 120 20 50 cartone 2300 libri 2
Faccio leggere il file, e tramite uno split() lo suddivido per campi all'interno di un array.
Facendo un ciclo, devo controllare che ogni campo sia scritto secondo certi criteri(in questo caso solo caratteri o numeri).
Che metodo devo usare?
Adesso posto quello che ho pensato di fare io :
codice:
import java.io.*;
public class LetturaPacco
{
public void Leggi() throws IOException
{
String caratteri = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
String numeri = "1234567890";
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(i == 4 || i == 6)
{
if(CampiPacco[i].contains(caratteri))
incrementoNumeri++;
}
else
{
if(CampiPacco[i].contains(numeri))
incrementoNumeri++;
}
}
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 vengano incrementate le 2 variabili
System.out.println(incrementoCaratteri);
System.out.println(incrementoNumeri);
}
}
Ma l'output è sempre di questo tipo :

(In rosso sono cerchiate le 2 variabili che non riesco a far incrementare...)