Com introduir i validar ' EOF ' en NetBeans

a l’ sembla no reconeix el ctr + z , jo ho vaig solucionar indicant a el programa en un If que finalitzarà la captura de dades quan l’usuari tecle el caràcter #, l’if niat té un break que finalitza l’entrada de l’ flux de dades :

public class ContarPalabras {

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

} // Tancament classe

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *