in

Invertir una cadena en Java

apple touch icon@2

Como otros han señalado, la forma preferida es usar:

new StringBuilder(hi).reverse().toString()

Pero si desea implementar esto usted mismo, me temo que el resto de respuestas tienen fallas.

La razon es que String representa una lista de Unicode puntos, codificados en un char[] matriz de acuerdo con la codificación de longitud variable: UTF-16.

Esto significa que algunos puntos de código usan un solo elemento de la matriz (una unidad de código), pero otros usan dos de ellos, por lo que puede haber pares de caracteres que deben tratarse como una sola unidad (sustitutos consecutivos «altos» y «bajos») .

public static String reverseString(String s) {
    char[] chars = new char[s.length()];
    boolean twoCharCodepoint = false;
    for (int i = 0; i < s.length(); i++) {
        chars[s.length() - 1 - i] = s.charAt(i);
        if (twoCharCodepoint) {
            swap(chars, s.length() - 1 - i, s.length() - i);
        }
        twoCharCodepoint = !Character.isBmpCodePoint(s.codePointAt(i));
    }
    return new String(chars);
}

private static void swap(char[] array, int i, int j) {
    char temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}

public static void main(String[] args) throws Exception {
    FileOutputStream fos = new FileOutputStream("C:/temp/reverse-string.txt");
    StringBuilder sb = new StringBuilder("Linear B Syllable B008 A: ");
    sb.appendCodePoint(65536); //http://unicode-table.com/es/#10000
    sb.append(".");
    fos.write(sb.toString().getBytes("UTF-16"));
    fos.write("n".getBytes("UTF-16"));
    fos.write(reverseString(sb.toString()).getBytes("UTF-16"));
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

SQL: tipos de datos

gfg 200x200 min

Método Java Math random () con ejemplos