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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


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

Desconectado Desconectado

Mensajes: 179



Ver Perfil
Ayuda con algoritmo en java
« en: 29 Marzo 2015, 18:17 pm »

Hola buenas, estoy aprendiendo a programar en java y tengo un problemilla....  :silbar:

Tengo un fichero del estilo:
Código:
1001 1
2001 2
3001 3

El usuario introduce un numero cualquiera y el algoritmo busca en que intervalo esta, si esta entre 0 y 1001 devuelve un 1, si esta entre 1001 y 2001 devuelve un 2 y asi...

Tengo que leer los datos del fichero con la clase scanner pero no encuentro la forma...

Hay que tener en cuenta que los valores pueden cambiar, se pueden introducir mas o menos...

Alguna ayuda?

Muchas gracias de antemano, un saludo!


En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Ayuda con algoritmo en java
« Respuesta #1 en: 29 Marzo 2015, 18:49 pm »

Hola,

Prueba lo siguiente:

Código
  1. public Integer getNumberByRange(String directory, String fileName, Integer number) {
  2. Integer numberToReturn = null;
  3. Path path = Paths.get(directory, fileName);
  4. Charset charset = Charset.forName("UTF-8");
  5. try {
  6. // lee todas las lineas del fichero
  7. List<String> lines = Files.readAllLines(path, charset);
  8.  
  9. Integer temporal = 0;
  10. for (String line : lines) {
  11. // divide la linea separando por espacios
  12. String[] tokens = line.split(" ");
  13. // asumimos solo los dos primeros lugares (rango - numero a devolver)
  14. Integer range = Integer.parseInt(tokens[0]);
  15. if(number > temporal && number < range)
  16. numberToReturn = Integer.parseInt(tokens[1]);
  17. temporal = range,
  18. }
  19. } catch (IOException e) {
  20. logger.warning(e.getMessage());
  21. } catch (NumberFormatExceptio e2) {
  22. logger.warning(e2.getMessage());
  23. }
  24.  
  25. return numberToReturn;
  26. }

Donde temporal es el número anterior. Itera rango por rango, verifica que el número ingresado sea mayor a temporal (número anterior) y que sea menor al rango, si es así, guarda el número a devolver. Finalmente, lo retorna.

Llamas al método así:

Código
  1. objeto.getNumberByRange("D://prueba", "rangos.txt", 2580);


Saludos.


« Última modificación: 29 Marzo 2015, 19:35 pm por Gus Garsaky » En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
marrison

Desconectado Desconectado

Mensajes: 179



Ver Perfil
Re: Ayuda con algoritmo en java
« Respuesta #2 en: 29 Marzo 2015, 19:17 pm »

Gracias, asi mas o menos me hago una idea, pero necesito que sea con un Scanner... 
En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Ayuda con algoritmo en java
« Respuesta #3 en: 29 Marzo 2015, 19:35 pm »

¿Alguna cuestión en especial para usar Scanner en lugar del API estándar para manejo de archivos?

Código
  1. File file = new File("D://prueba/rangos.txt");
  2. try {
  3. Scanner sc = new Scanner(file);
  4. while (sc.hasNextLine()) {
  5. String[] tokens = sc.nextLine().split(" ");
  6. // el mismo proceso
  7. }
  8. sc.close();
  9. }
  10. e.printStackTrace();
  11. }
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
marrison

Desconectado Desconectado

Mensajes: 179



Ver Perfil
Re: Ayuda con algoritmo en java
« Respuesta #4 en: 30 Marzo 2015, 18:22 pm »

exigencias del profesor  ;D

Muchas gracias!1111111 ;)
En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Ayuda con algoritmo en java
« Respuesta #5 en: 30 Marzo 2015, 18:39 pm »

Jaja, si lo manda el profe, pues a hacerlo (aunque a veces se equivoquen :xD).
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
marrison

Desconectado Desconectado

Mensajes: 179



Ver Perfil
Re: Ayuda con algoritmo en java
« Respuesta #6 en: 30 Marzo 2015, 23:40 pm »

jajaja yo a obedecer calladico xD
En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
yum-kax

Desconectado Desconectado

Mensajes: 36


I'm living in babylon!


Ver Perfil
Re:
« Respuesta #7 en: 31 Marzo 2015, 00:15 am »

Esta bueno igual que ademas de hacer lo que pida el profe, vos por tus medios veas diferentes formas de hacerlo y entiendas las líneas de código que te dio Gus Garsaky!

Un saludo y espero que sigas con hambre de conocimiento,y no solo cumplimiento
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Algoritmo en Java [SOLUCIONADO]
Java
Azulf 3 9,769 Último mensaje 21 Octubre 2007, 15:25 pm
por marioly
Ayuda algoritmo en java
Java
estherlui 0 1,761 Último mensaje 27 Mayo 2012, 13:13 pm
por estherlui
Ayuda algoritmo en java
Java
estherlui 1 3,664 Último mensaje 27 Mayo 2012, 23:05 pm
por Proteus1989
Ayuda algoritmo en JAVA
Ejercicios
Kacoae 2 2,990 Último mensaje 16 Mayo 2013, 19:07 pm
por Kacoae
Ayuda Algoritmo Java
Java
ditou 2 1,674 Último mensaje 15 Noviembre 2013, 19:54 pm
por ditou
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines