Página 1 de 1

Reversear cadena (Java)

Publicado: 11 Oct 2011, 01:53
por KHC
Bueno pues se me ocurrio hacer este codigo pequeño pero no tiene errores, el problema viene al momento de haber convertido el vect de array a string que no lo imprime si alguien le echa una leida y me ayuda estaria bien terminar el source que quiero implementarlo en algunos programas.... saludos!

Código: Seleccionar todo

import java.util.Scanner;


public class Main {

    
    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
        System.out.println("Cadena a reversear: ");
        String tmp = teclado.next();
        int largotmp = tmp.length()-1;
        char tmpchar[] = tmp.toCharArray();
        char chrfinal[] = {};
        String reversed;
        for(int temporal = tmp.length()-1; tmp.length() > largotmp; temporal--){

            char caracter = tmpchar[temporal];
            chrfinal[0] = caracter;
        }

        reversed = chrfinal.toString();
        System.out.println(reversed);



    }

}
Si alguien tiene un mejor algoritmo pero no se vale codigo largo la idea es sacar uno e irlo debuggeando y mejorando hasta que quede lo mas compacto posible!

Re: Reversear cadena (Java)

Publicado: 13 Oct 2011, 08:29
por K-0Z
Un algoritmo mas corto no significa que sea mas eficiente que otro mas largo, salu2 !

Re: Reversear cadena (Java)

Publicado: 13 Oct 2011, 16:46
por linkgl
NO SE JAVA para aclarar pero en vista de que no te han contestado no podrías hacer algo como esto...?

Código: Seleccionar todo

import java.util.Scanner;


public class Main {

    
    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
        System.out.println("Cadena a reversear: ");
        String tmp = teclado.next();
        int largotmp = tmp.length()-1;
        char tmpchar[] = tmp.toCharArray();
        char chrfinal[] = {};
        String reversed="";
        for(int temporal = tmp.length()-1; tmp.length() > largotmp; temporal--){

            reversed = reversed + tmpchar[temporal];
            //chrfinal[0] = caracter;
        }

        reversed = chrfinal.toString();
        System.out.println(reversed);



    }

}
Jeje esa es la idea pues mas no se si este correcto o Java lo permita así. Saludos

PD: Aca hice un strreverse y BlackZeroX publicó el suyo también ambos estan escritos en C por si te interesa foro/viewtopic.php?f=36&t=34488

Re: Reversear cadena (Java)

Publicado: 13 Oct 2011, 17:35
por adwind
mmm si lo que quieres hacer un StringReverse este seria una de tus mejores opciones
:)

Código: Seleccionar todo

import java.util.Scanner;


public class Main {

    
    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
        System.out.println("Cadena a reversear: ");
        String stringsimple = teclado.next();
        
        StringBuilder tmp= new StringBuilder(stringsimple);
        System.out.println(tmmp.reverse().toString());

    }

}
Checa y me dices. saludos.

Re: Reversear cadena (Java)

Publicado: 13 Oct 2011, 18:10
por adwind
mmm si lo que quieres hacer un StringReverse este seria una de tus mejores opciones
:)

Código: Seleccionar todo

import java.util.Scanner;

public class Main {

       public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
        System.out.println("Cadena a reversear: ");
        String stringsimple = teclado.next();
        
        StringBuilder tmp= new StringBuilder(stringsimple);
        System.out.println(tmmp.reverse().toString());

    }

}

Checa y me dices. saludos.

Re: Reversear cadena (Java)

Publicado: 14 Oct 2011, 02:24
por KHC
adwind escribió:mmm si lo que quieres hacer un StringReverse este seria una de tus mejores opciones
:)

Código: Seleccionar todo

import java.util.Scanner;


public class Main {

    
    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
        System.out.println("Cadena a reversear: ");
        String stringsimple = teclado.next();
        
        StringBuilder tmp= new StringBuilder(stringsimple);
        System.out.println(tmmp.reverse().toString());

    }

}
Checa y me dices. saludos.

Te rayaste co! gracias por la ayuda no conozia esa funcion de StringBuilder !!