elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Lecturas en java.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Lecturas en java.  (Leído 4,572 veces)
Distorsion

Desconectado Desconectado

Mensajes: 238


15Hz ~ 20Hz


Ver Perfil
Lecturas en java.
« en: 30 Octubre 2007, 17:08 pm »

Hola buenas, ay una cosa que me lleva de cabeza con la lectura de caracter a caracter en java. Estoy haciendo una especie de buscador de dos caracteres(las secuencias a encontrar se solapan), intento detectar si el usuario teclea solo un enter sin escribir nada y intento ir refrescando el valor de las variables con nuevos caracteres k se supone que el usuario a de ir introduciendo, pero me lee solo la primera secuencia introducida. No se si me explico. Aqui esta el codigo:


Código
  1. import java.io.*;              
  2. public class Buscador {        
  3. public static void main(String[] args) throws Exception {
  4. int codiASCII;
  5. char troba1 = (char)0, troba2 = (char) 0, caracter1 = (char) 0, caracter2 = (char)0;
  6. int contador = 0;
  7. int frases = 0;
  8.  
  9.  
  10.  
  11. InputStreamReader entrada = new InputStreamReader(System.in);    
  12. BufferedReader teclado = new BufferedReader(entrada);          
  13. BufferedReader teclado2 = new BufferedReader(entrada);
  14. BufferedReader teclado3 = new BufferedReader(entrada);
  15.  
  16. while(troba1==(char)0){
  17. System.out.print("Introduce el primer caracter a encontrar: ");
  18. codiASCII= teclado.read();
  19. if (codiASCII != 13){
  20. if(codiASCII < 97){
  21. troba1 = (char) (codiASCII + 32);
  22. }
  23. else{
  24. troba1 = (char) codiASCII;
  25. }
  26. }
  27. }
  28.  
  29. System.out.print(troba1);
  30.  
  31. while(troba2==(char)0){
  32. System.out.print("\nIntroduce el segundo caracter a encontrar: ");
  33. codiASCII = teclado2.read();
  34. if (codiASCII != 13){
  35. if(codiASCII < 97){
  36. troba2 = (char) (codiASCII + 32);
  37. }
  38. else{
  39. troba2 = (char) codiASCII;
  40. }
  41. }
  42. }
  43.  
  44. System.out.print(troba2);
  45.  
  46. System.out.print("\nIntroduce el texto: ");
  47. codiASCII= teclado3.read();
  48. while (codiASCII != 13){
  49. if(codiASCII < 97){
  50. caracter2 = (char) (codiASCII + 32);
  51. }else{
  52. caracter2 = (char) codiASCII;
  53. }
  54. System.out.print(caracter2 + "\n");
  55. if (caracter1 == troba1 & caracter2 == troba2)
  56. contador = contador +1;
  57.  
  58. if ((caracter2=='.') | (caracter2 =='?') | (caracter2=='!'))
  59. frases = frases +1;
  60.  
  61. caracter1 = caracter2;
  62. codiASCII= teclado.read();
  63. }
  64. System.out.print(caracter1 + "\n" + caracter2);
  65. System.out.print("Numero de las secuencias encontradas: "+contador);
  66. System.out.print("Numero de frases: "+ frases);
  67. }
  68. }

Gracias por la ayuda.


« Última modificación: 30 Octubre 2007, 18:07 pm por Casidiablo » En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: Lecturas en java.
« Respuesta #1 en: 30 Octubre 2007, 17:50 pm »

Pues la verdad no entiendo lo que quieres hacer :(

P.d. Trata de usar las etiquetas de código.


« Última modificación: 30 Octubre 2007, 18:08 pm por Casidiablo » En línea

Distorsion

Desconectado Desconectado

Mensajes: 238


15Hz ~ 20Hz


Ver Perfil
Re: Lecturas en java.
« Respuesta #2 en: 30 Octubre 2007, 22:19 pm »

Siento no haber sido mas claro. No importa ya lo e solucionado, he reexo todo el codigo Hay me estaba complicando la vida innecesariamente.
En línea

Distorsion

Desconectado Desconectado

Mensajes: 238


15Hz ~ 20Hz


Ver Perfil
Re: Lecturas en java.
« Respuesta #3 en: 30 Octubre 2007, 22:29 pm »

En este caxo de codigo:  datos= teclado.readLine(); si el usuario introduce un enter sin nada escrito da error. Como podria hacer que se repitiera la peticion de escritura de teclado asta que el usuario deje de escribir solo un enter?¿ Vamos que si da error vuelva a pedir la escritura.
saludos!
En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: Lecturas en java.
« Respuesta #4 en: 31 Octubre 2007, 19:04 pm »

Algo como:

Código
  1. do
  2. {
  3.    datos= teclado.readLine();
  4. }
  5. while(comprobar si no escribio nada);
En línea

Distorsion

Desconectado Desconectado

Mensajes: 238


15Hz ~ 20Hz


Ver Perfil
Re: Lecturas en java.
« Respuesta #5 en: 1 Noviembre 2007, 17:02 pm »

XD si eso del while facil pero el problema que tengo es en la comprobacion XD, nose como comprobarlo, ademas solo con el readline el programa acaba con error si el usuario solo a introducido un enter, asi que que abria que controlar el error.
Gracias por contestar.
En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: Lecturas en java.
« Respuesta #6 en: 2 Noviembre 2007, 16:37 pm »

Algo como esto:

Código
  1. import java.io.*;              
  2. public class Buscador {        
  3. public static void main(String[] args) throws Exception {
  4. int codiASCII;
  5. char caracter = (char)0;
  6. InputStreamReader entrada = new InputStreamReader(System.in);    
  7. BufferedReader teclado = new BufferedReader(entrada);          
  8.  
  9. System.out.print("Digite un caracter: ");
  10. do
  11. {
  12. codiASCII= teclado.read();
  13. }while(codiASCII==10 || codiASCII==13 );
  14. caracter = (char)codiASCII;
  15. System.out.print("El ascii es: "+ codiASCII + " y el caracter "+ caracter);
  16. }
  17. }

Un saludo!
En línea

bestcid

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Lecturas en java.
« Respuesta #7 en: 2 Noviembre 2007, 20:05 pm »

quizá leyendo en lugar de con .read usado un Integer.parseInt readLine() ?

así siempre lees sólo el numero (en este caso el codigo ascii) que te interesa sin tener caracteres de retorno de carro en el bufferedreader
« Última modificación: 19 Marzo 2008, 01:11 am por bestcid » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines