• Reversear cadena (Java)

 #324279  por KHC
 11 Oct 2011, 01:53
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!
 #324820  por K-0Z
 13 Oct 2011, 08:29
Un algoritmo mas corto no significa que sea mas eficiente que otro mas largo, salu2 !
 #324873  por linkgl
 13 Oct 2011, 16:46
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 [ Debe registrarse para ver este enlace ]
 #324890  por adwind
 13 Oct 2011, 17:35
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.
 #324894  por adwind
 13 Oct 2011, 18:10
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.
 #325011  por KHC
 14 Oct 2011, 02:24
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 !!