Almacenar cadenas en arreglos de bytes

Iniciado por m@o_614, 12 Enero 2015, 06:03 AM

0 Miembros y 1 Visitante están viendo este tema.

m@o_614

Saludos

Tengo el siguiente código que trata de almacenar una cadena cualquiera en un arreglo de bytes e imprimirlo

Primero tengo que crear un arreglo de bytes, y este arreglo debe contener en la primera posición un contador de caracteres.

A continuación debe almacenar en este array los codigos ASCII de cada caracter del String, y en la primera posición(o sea donde está el contador) debe de tener la longitud de la cadena. TENGO QUE USAR OBLIGATORIAMENTE EL METODO String.getBytes(). Después de realizar todo lo anterior, una subrutina reciba el arreglo de bytes e imprima solo los caracteres contenidos en el arreglo(el contador para eso sirve).

Código (java) [Seleccionar]
public class ByteArray {

public static void main(String[] args)
{
byte arregloBytes[];
String cadena = "Hola";
arregloBytes = obtenerASCII(cadena);
imprimirArreglo(arregloBytes);
}

public static byte[] obtenerASCII(String cadena)
{
int longitud,i,j;
longitud = cadena.length()+1;
byte codigosASCII[] = new byte[longitud];
                codigosASCII[0] = (byte)longitud;
for(i = 0,j = 1;i < cadena.length();i++,j++)
{
codigosASCII[j] = (byte)cadena.charAt(i);
}
return codigosASCII;
}

public static void imprimirArreglo(byte[] arregloBytes)
{
int i;
for(i = 0;i < arregloBytes.length;i++)
{
   System.out.println(""+(int)arregloBytes[i]);
}
}
}


Aqui el problema es que por ejemplo si tengo en el String ="Hola", ¿cómo hago para que en el arregloBytes, en una sola casilla tenga almacenados TODOS los codigos ASCII del caracter, si tengo H su ascii decimal será 72, su octal 036 y su hexadecimal 48.

y tampoco se bien como utilizar el metodo getBytes()

de antemano gracias

madara1412

aqui un ejemplo de como usar getBytes ... igual no entendi lo que nesitas

Código (java) [Seleccionar]

        String a="hola";
        byte[] plainTextBytes = a.getBytes("utf-8");
       
        System.out.println(plainTextBytes);


se le pone utf-8 por la misma razón que en el html para que reconozca simbolos ,tildes  etc .....