Cum să introduceți și validați ' EOF ' la Netbeans

aparent nu recunoaște CTR + Z, l-am rezolvat prin indicarea programului într-un articol Acest lucru va termina captarea datelor atunci când utilizatorul a introdus caracterul #, imbricat dacă are o pauză care încheie intrarea fluxului de date:

Clasa publică Callapalabras {

public static void main(String args) { //Declaración de variables final char eof = (char)-1; //Final asigna un valor constante a la variable eof char car; boolean palabra = false; int ncaracteres = 0, npalabras = 0, nlineas = 0; try{ //Encabezado de la aplicación System.out.println("Introducir texto. "+ "Pulse Enter después de cada linea." + "Para finalizar la captura teclea el caracter #" ); /*Inicio del bucle principal que lee la cadena de carateres sin importar si se dió una vuelta de carro creando un bucle infinito que solo se interrumpe con ctr + z*/ while( ( car =(char)System.in.read() ) != eof){ if (car == '#') break; /*Bucle 1 que detecta vuelta de carro. Contará caracteres hasta detectar una vuelta de carro, donde la variable ncarateres se autoincrementará de uno en uno dando el número de caracteres del texto dado, eof identifica el final del flujo de entrada*/ if(car == '\r') continue; ncaracteres++; /*Bucle 2 que detecta los espacios en blanco, inicio de lineas nuevas y tabuladores, los cuales discrimina al asignarles un valor boolean false*/ if (car == ' ' || car == '\n' || car == '\t') palabra = false; /*Bucle 3, el operador ! es negación, asigna un incremento a la variable npalabras cuando la variable boolean palabra es true*/ else if(!palabra){ npalabras++; palabra = true; }//Cierre else if /*Bucle 4, identifica el comienzo de una nueva linea, donde el valor de nlineas se autoincrementa*/ if(car == '\n') nlineas++; }//Cierre del bucle principal while //Presentación de resultados System.out.println(); System.out.println("Caracteres = " + ncaracteres + " Palabras= " + npalabras + " Lineas= " + nlineas ); }//Cierre try catch(IOException ignorada){}}//Cierre programa

} // clasa de închidere

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *