Java - Duda sobre Ctrl + Z en una Matriz en java

 
Vista:
sin imagen de perfil

Duda sobre Ctrl + Z en una Matriz en java

Publicado por omar (3 intervenciones) el 18/04/2017 03:21:03
Primero que nada gracias por tomar un poco de tu tiempo para ayudarme en mi duda.
Lo que pasa es que estoy aprendiendo matrices con java en netbeans, en el ejercicio actual el programa pide al usuario que ingrese una cadena y que cuando desee terminar oprima [Ctrl]+[Z] para que el programa continué con la siguiente acción (mostrar la frecuencia con la que aparece cada carácter), pero no pasa nada al oprimir [Ctrl]+[Z].
También encontré que la consola no acepta "comandos", si esta es la razón del porque no funciona, les agradecería que me ayudaran con la solución. Y si ese no es el problema, por favor indicar cual es.
Aprecio y agradesco por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda sobre Ctrl + Z en una Matriz en java

Publicado por Renzo (232 intervenciones) el 18/04/2017 19:14:24
Es un programa de consola ? osea sin ventanas ?
en consola no puedes capturar los eventos de teclado, solo puede hacerse desde una ventana.

en consola solo sirve el CTRL + C que termina la ejecución de un programa.

Renzo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda sobre Ctrl + Z en una Matriz en java

Publicado por pinaarrieta (1 intervención) el 07/10/2018 07:33:22
El ctr + z se supone que finaliza la entrada de un flujo de datos, pero no lo reconoce el Netbeans
Para eso se puede solucionar indicandole al programa que finalize el flujo de entrada cuando tecleas un carater determinado, por ejemplo # y luego de dar enter finaliza el flujo de entrada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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;   //Aqui finaliza la entrada del flujo de datos si se escribe el carater # o el que se indique en la condición if
 
                /*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
 
}//Cierre clase

Fuente
Ceballos Javier. Java 2 Curso de Programacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar