Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Tyrz en 11 Enero 2011, 11:51 am



Título: se atasca en una instruccion
Publicado por: Tyrz en 11 Enero 2011, 11:51 am
Buenas!

mi problema esq he hecho varios programas en los que almaceno caracteres introducidos por teclado en un array de caracteres.

Siempre que hago algo como esto:
Código:
frases[1].caracteres[1]=c;

Este array de arrays de caracteres deja a mi java en estado de running pero no muestra nada.

Si hago un bucle como este:

Código:
while(c!=' '){
                    System.out.println("Aqui llega");
                    frases[1].caracteres[1]=c;
                    System.out.println("Aqui NO");
                    i++;
                    c=(char)System.in.read();
                }

Mostrara muchas veces el "Aqui llega" pero el "Aqui NO" ninguna vez.
No pongo el codigo completo porq supongo que estoy aaciendo algo mal en esa asignacion.

A ver si alguien puede decirme porq esta mal esa instruccion.
Gracias!


Título: Re: se atasca en una instruccion
Publicado por: kasiko en 11 Enero 2011, 22:22 pm
prueba primero a hacer cosas con arrays de caracteres solo, a rellenarlo y a ver su contenido.

Despues prueba con los arrays de arrays de caracteres...  :rolleyes:


Título: Re: se atasca en una instruccion
Publicado por: Tyrz en 12 Enero 2011, 08:58 am
Gracias me has sido muy útil.

PD: No


Título: Re: se atasca en una instruccion
Publicado por: kasiko en 12 Enero 2011, 10:12 am
Gracias me has sido muy útil.

PD: No

A ver si esto te resulta mas util... tanto para almacenar datos en un array/vector/arreglo como para recuperar datos, se tiene que hacer a traves de un indice...

Dime que es lo que hace esta instruccion:
Citar
while(c!=' '){
                   ....
                   i++; // <-- ¿¿¿¿????
                   ....
                 }



PD: es recomendable leer esto http://foro.elhacker.net/java/como_redactar_tu_codigo_para_exponer_dudas-t315512.0.html


Título: Re: se atasca en una instruccion
Publicado por: Tyrz en 12 Enero 2011, 12:22 pm
solo estaba probando porq no pasa de ahi, en realidad es

Código:
while(c!='\n'){
                while(c==' '){
                    c=(char)System.in.read();
                }
                while((c!=' ')&&(c!='.')&&(c!='\n')){
                    System.out.println("Aqui llega");
                    frases[l].caracteres[i]=c;
                    System.out.println("Aqui NO");
                   
                    i++;
                    c=(char)System.in.read();
                }
                i


la cosa es que ni siquiera me deja ver el "aqui no" :S
Gracias!


Título: Re: se atasca en una instruccion
Publicado por: kasiko en 12 Enero 2011, 12:44 pm
a ver si esto te aclara las cosas

Código:

/**
 *
 * @author kasiko
 */
public class NewClass1 {

    private static final int tamaño = 20;

    public static void main(String[] args) {
        char[] a = new char[tamaño];

        //metemos datos
        for (int i = 0; i < tamaño; i++) {
            a[i] = (char) ('a' + i);
        }

        //sacamos datos
        for (int i = 0; i < tamaño; i++) {
            System.out.println("Posicion: " + i + " valor: " + a[i]);
        }
    }
}




Título: Re: se atasca en una instruccion
Publicado por: Debci en 19 Enero 2011, 21:54 pm
Te lo esta diciendo el compañero...
Ese indice, por mucho que lo cambies si no lo asignas al array, es como gritar enmedio del mar...

Saludos


Título: Re: se atasca en una instruccion
Publicado por: ChavalChavito en 20 Enero 2011, 06:42 am
Aver si te entendi lo q qieres hacer.. suponiendo que el arreglo ya esta cargado asi lo recorrerias ..

for ( int i = 0; i < arregloChar.length; i ++ ){
   if ((arregloChar [ i ] !=' ')&&(arregloChar [ i ] ='.')&&(arregloChar [ i ]! ='\n'))
        System.out.println("Aqui llega");
   else         
        System.out.println("Aqui no llega");
   
}
Y si lo q tu qieres es ir analizando x cada vez q tecleas, mas facil inclusive, lo haces justo despues d hacer la lectura :S


Título: Re: se atasca en una instruccion
Publicado por: Tyrz en 20 Enero 2011, 14:49 pm
no lo habeis entendido del todo, el problema esq cuando llega aqui:

Código:
frases[1].caracteres[1]=c;

Se queda parado, por eso puse lo de "Aqui llega", "Aqui no" porq aunq el "aqui no" está dentro del bucle no lo muestra ni una vez. En cambio el "aqui llega" aparece una vez.

El problema no es el indice ya que puse 1 solo por probar, para ver si no se quedaba parado como ya digo pero hace lo mismo.

De todas formas hice el programa sin este array de otro array ya está terminado.

Gracias a todos de todas formas!


Título: Re: se atasca en una instruccion
Publicado por: kasiko en 21 Enero 2011, 20:57 pm
....

De todas formas hice el programa sin este array de otro array ya está terminado.

Gracias a todos de todas formas!

Fenomenal  :rolleyes: