Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Tonyskater

#1
Hola! Soy Tony, primero que nada gracias por la ayuda que he recibido en el foro.
Ahora bien, queria hablar sobre un tema que me tiene algo preocupado, o más que preocupado, expectante...

Empiezo por el principio, soy un estudiante de Desarrollo de Aplicaciones Web (DAW), un ciclo formativo que se imparte en España (Donde lo estoy estudiando actualmente).
El primer curso de este ciclo superior de 2 años, ha sido rápido, aburrido en algunos aspectos e interesante en otros.

Qué  quiero decir con ésto, básicamente este primer año nos hemos centrado en asentar las bases principales que todo desarollador debe tener en cuenta para crear un código decente, con esto me refiero a la indentación, creación de funciones para no tener el código hecho un barullo de ideas, etc.

Pero lo más lejos que hemos llegado es a trabajar con ficheros de texto, de forma muy "pobre" por decirlo mal y pronto, el ejercicio más complicado que he tenido de este estilo es uno que tuve que consultar en el foro para poder arreglar los fallos que tenía.(Hablo de mi anterior post que era de una duda de LeetSpeak).

Quería saber, porque la verdad no me hago una idea, de qué hace un programador ya formado en el día a día, dudo que sea traducir "HOLA ME LLAMO TONY" a "H0L4 M3 LL4M0 70NY", y si lo es.... Creo que me hago una idea de lo que NO quiero seguir estudiando... Porque sí, puedo haber tenido ejercicios complicados que me han costado 5 horas resovlerlos, pero no son el tipo de actividades que hace un programador en el día a día.
¿Qué tipo de "programas", "código", acaba uno aprendiendo a hacer y por qué es tan potente Java?

Gracias por vuestra atención, un saludo
#2
Hola tengo una duda con un ejercicio que estoy haciendo de LeetSpeak, el enunciado es el siguiente:
a) Dado el siguiente archivo de texto traduce el LeetSpeak a letras.
b)Dado el siguiente archivo de texto traduce el siguiente texto a LeetSpeak

El archivo es una simple cadena de texto cualquiera.

Con la siguiente formula no deberia ser un problema traducirlos:

Lo cual en mi codigo es lo siguiente:
Código (java) [Seleccionar]
switch (LS) {
                    case 1:
                        while (input.hasNextLine()) {
                            frase = input.nextLine();
                            frase.replace('O', '0').replace('I', '1').replace('Z', '2').replace('E', '3').replace('A', '4')
                                    .replace('S', '5').replace('G', '6').replace('T', '7').replace('B', '8').replace('P', '9');
                            escribir(frase, 1);
                            System.out.println("Se ha formado el LeetSpeak");
                        }   break;
                    case 2:
                        while (input.hasNextLine()) {
                            frase = input.nextLine();
                            frase.replace('0', 'O').replace('1', 'I').replace('2', 'Z').replace('3', 'E').replace('4', 'A')
                                    .replace('5', 'S').replace('6', 'G').replace('7', 'T').replace('8', 'B').replace('9', 'P');
                            escribir(frase, 2);
                            System.out.println("Se ha traducido el LeetSpeak");
                        }   break;
                    default:
                        System.out.println("Introduce un valor valido.");
                        break;
                }

Esto funciona bien, ahora viene cuando explota mi cabeza...
En general este es mi
Código (java) [Seleccionar]
public class Escribir {

    public static void main(String[] args) {
        JFileChooser selector = new JFileChooser();
        selector.showOpenDialog(null);
        selector.setFileSelectionMode(JFileChooser.FILES_ONLY);
        if (selector.getSelectedFile() != null) {
            System.out.println("Has seleccionado el fichero: " + selector.getSelectedFile());
            File archivo = selector.getSelectedFile();
            try {
                FileReader entrada = new FileReader(archivo);
                BufferedReader BR = new BufferedReader(entrada);
                Scanner input = new Scanner(entrada);
                String frase = "";
                while (input.hasNextLine()) {
                    frase = input.nextLine();
                    System.out.println(frase);
                }
                //ESCRIBIR ✔✔
                int LS;
                System.out.println(
                        "¿Quieres un LeetSpeak de este archivo?[1] ");
                System.out.println(
                        "¿Quieres traducir este LeetSpeak?[2] ");
                System.out.print(
                        "Introduce opcion del menu [1|2]: ");
                Scanner menu = new Scanner(System.in);
                LS = menu.nextInt();
                switch (LS) {
                    case 1:
                        while (input.hasNextLine()) {
                            frase = input.nextLine();
                            frase.replace('O', '0').replace('I', '1').replace('Z', '2').replace('E', '3').replace('A', '4')
                                    .replace('S', '5').replace('G', '6').replace('T', '7').replace('B', '8').replace('P', '9');
                            escribir(frase, 1);
                            System.out.println("Se ha formado el LeetSpeak");
                        }   break;
                    case 2:
                        while (input.hasNextLine()) {
                            frase = input.nextLine();
                            frase.replace('0', 'O').replace('1', 'I').replace('2', 'Z').replace('3', 'E').replace('4', 'A')
                                    .replace('5', 'S').replace('6', 'G').replace('7', 'T').replace('8', 'B').replace('9', 'P');
                            escribir(frase, 2);
                            System.out.println("Se ha traducido el LeetSpeak");
                        }   break;
                    default:
                        System.out.println("Introduce un valor valido.");
                        break;
                }
                entrada.close();
            } catch (FileNotFoundException e) {
                System.out.println("Fichero no encontrado");
            } catch (NoSuchElementException e) {
                System.out.println("No es un formato correcto");
                System.out.println("Se esperaba un .txt");
            } catch (Exception e) {
                System.out.println("Se ha producido un error inesperado");
                System.out.println(e.toString());
            }
        } else {
            System.out.println("No se ha seleccionado ningun archivo.");
        }
    }


El tema es que no escribe nada, osea lee el archivo bien, lo muestra y cuando llega el momento eliges la opcion del menu que quieres y no crea el archivo traducido.

Esta es mi funcion escribir:
Código (java) [Seleccionar]
public static void escribir(String s, int n) {
        if (n == 1) {
            try {
                FileWriter salida = new FileWriter("C:\\Users\\Tony\\Documents\\NetBeansProjects\\AGonzalezJBalmes\\LeetSpeakResultado1.txt", true);
                for (int i = 0; i < s.length(); i++) {
                    salida.write(s.charAt(i));
                }
                salida.close();
            } catch (IOException ex) {
                Logger.getLogger(Escribir.class.getName()).log(Level.SEVERE, null, ex);
            }
        } else if (n == 2) {
            try {
                FileWriter salida = new FileWriter("C:\\Users\\Tony\\Documents\\NetBeansProjects\\AGonzalezJBalmes\\LeetSpeakResultado2.txt", true);
                for (int i = 0; i < s.length(); i++) {
                    salida.write(s.charAt(i));
                }
                salida.close();
            } catch (IOException ex) {
                Logger.getLogger(Escribir.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

Acabo de empezar hace escasos días con ficheros y no me aclaro muy bien...

Gracias de antemano espero que me podáis ayudar.
#3
Hola compañeros, tengo una duda espero que entre todos podamos resolverla.
Dice así:
tengo un vector de estaciones:
Código (java) [Seleccionar]

       String[] linia = new String[6];
       linia[0] = "La Sagrera";
       linia[1] = "Onze de Setembre";
       linia[2] = "Bon Pastor";
       linia[3] = "Llefiá";
       linia[4] = "La Salut";
       linia[5] = "Gorg";

Se introduce por teclado el nombre de una estación y tengo que averiguar la sucursal que queda más cerca de la estación que he introducido.
Las sucursales están colocadas en los extremos del vector: linia[0] y linia.length-1
Código (java) [Seleccionar]
String sucursal0 = estacion(linia,"La Salut");
System.out.println("La sucursal mas cercana es: "+sucursal0);
String sucursal1 = estacion(linia,"Onze de Setembre");
System.out.println("La sucursal mas cercana es: "+sucursal1);
String sucursal2 = estacion(linia,"Bon Pastor");
System.out.println("La sucursal mas cercana es: "+sucursal2);
String sucursal3 = estacion(linia,"Llefiá");
System.out.println("La sucursal mas cercana es: "+sucursal3);
String sucursal4 = estacion(linia,"La Sagrera");
System.out.println("La sucursal mas cercana es: "+sucursal4);
String sucursal5 = estacion(linia,"Gorg");
System.out.println("La sucursal mas cercana es: "+sucursal5);

Tanto si  el valor introducido no es válido (no se reconoce dentro del vector), o el valor introducido es una de las Sucursales. Se devolverá una cadena vacía.

Si el valor es válido y no es una de las sucursales, se devolverá el nombre de la sucursal más cercana (Aquí esta la parte que no entiendo, ya que me cuesta mucho tratar con vectores de String al no saber comparar bien los elementos entre ellos...)

Cómo podria solucionar el tema de comparar los Strings, la verdad estoy muy verde con ese tema, esta es mi funcion(sin terminar):
Código (java) [Seleccionar]
   public static String estacion(String[] linia, String estacion) {
       String sucursal="";
       for(int i=0;i<linia.length/2;i++){
           if(estacion.equals(linia[i+1])||estacion.equals(linia[i+2])){//esta parte del codigo es muy chapucera, ya que si tuviera un vector mas grande no funcionaria bien con esto...
               sucursal="La Sagrera";
           }else if(estacion.equals(linia.length-1)){
               sucursal="Gorg";
           }else if(estacion.equals(linia[0])){
               sucursal="La Sagrera";
           }else if(){//aqui viene el condicional que necesito
               sucursal="";
           }            
       }
       return sucursal;
   }

Gracias por vuestra ayuda!
#4
Java / Recorrer y sustituir en matriz JAVA
1 Mayo 2017, 01:38 AM
Hola buenas noches, primero que nada me presento, soy Tony estudiante de formación superior de desarrollo de aplicaciones web.

Tengo un pequeño problema, yo creo bastante simple pero que mi cabeza por algún motivo no procesa. El problema es el siguiente, estoy haciendo un ejercicio para hacer una sopa de letras, no funcional, me explico, no se va a acceder a ningún fichero diccionario ni nada parecido, simplemente interactuaremos con los resultados generados por nuestro propio código. Y realmente estoy atascado en el momento de buscar y sustituir valores en la matriz.

public static /*char[][]*/ int sustituir(char[][] m, String s) {
        int cont = 0;
        for (int i = 0; i < m.length; i++) {
            for (int j = 0; j < m[i].length; j++) {
                if(s.charAt(i)==m[i][j]){
                    cont++; //esto es simplemente para ver si llega a interpretar la condición
                }
            }
        }
        return cont;
    }
}

Esa función realmente debería devolver un vector de caracteres con los caracteres que le pase en el string sustituidos 1 única vez en toda la matriz. (Sí, el código aun está en ropa interior, pero no logro empezar bien...).

El problema creo que está en el condicional, ya que si le paso una cadena  con menor longitud que el vector saltará un OutOfBoundsException. No sé solucionarlo...