//--asumiendo que tienes un ArrayList<String> de sentencias:
for(int i=0; i<arregloSentencias.length(); i++){
RevisarLinea(arraylistSentencias.get(i), i+1);
}
//si lo que tienes es un arreglo de String sería entonces
for(int i=0; i<arregloSentencias.length(); i++){
RevisarLinea(arraylistSentencias[i], i+1);
}
//---- lo más importante es el siguiente método, que dado un String (la línea) y un int (posición de dicha línea dentro del array),
//---- revisará su estructura e informará errores:
public void RevisarLinea(String linea, int posLinea){
int posIni = 0;
int posFin = 0;
while(linea.charAt(posFin) != ' ' && posFin<linea.length()-1){
posFin++;
}
String parte1 = linea.substring(0, posFin);
if(parte1.compareToIgnoreCase("insert")!=0)
JOptionPane.showMessageDialog(this, "La línea " + posLinea + " no comienza por 'insert'");
posIni = posFin;
if(posFin<linea.length())
posFin++;
//--- verificación del INTO -----
while(linea.charAt(posFin) != ' ' && posFin<linea.length()-1){
posFin++;
}
String parte2 = linea.substring(posIni, posFin).trim();
if(parte2.compareToIgnoreCase("into")!=0)
JOptionPane.showMessageDialog(this, "La línea " + posLinea + " no continúa con 'INTO' luego del 'insert'");
posIni = posFin;
posFin++;
//--- verificación de la existencia de nombres de tablas, también
//--- de la existencia de 'values(' en la cadena después del nombre de la tabla
int indexCadena = linea.indexOf("values(");
if(indexCadena>-1){ // significa que 'values(' existe
if(posFin == indexCadena) //'values(' tiene una longitud de 7 caracteres
JOptionPane.showMessageDialog(this, "La línea " + posLinea + " no tiene nombre de tabla antes del 'values('");
}
else
JOptionPane.showMessageDialog(this, "A la línea " + posLinea + " le falta el 'values('");
//--------------------
if(linea.charAt(linea.length()-1) != ')')
JOptionPane.showMessageDialog(this, "A la línea " + posLinea + " le falta el paréntesis de cierre ')'");
}