Ref.: Código ASCII

Bom dia.

     Como posso obter o código ASCII de um determinado Caracter?


     Por ex.: Preciso imprimir os códigos ASCII de uma terminada String ("!@#$%¨&*()").


                  Desde Já agradeço.

Fácil, é só fazer cast de char para int e vice-versa.

char a = 'a';
System.out.println((int) a); // Escreve 97

int b = 98;
System.out.println((char) b); // Escreve b

Use String.charAt.

Exemplo:

String s = "!@#$%¨&*()";
System.out.println ((int) s.charAt (0)); // imprime 33

Por ex.:

Tenho uma linha que em seu início tem caracteres especias (<STX>), em seu final (<CR>, <LF>) e ainda no fim do arquivo (<EOF>).

Pois bem!

Como posso ler esses caracteres especias e mostrar o seu ASCII?

Por Ex. Preciso saber qual o ASCII do primeiro caracter da String, seja ele especial ou não.

Valeu!

Eu mostrei como se faz isso para o primeiro caracter (que está na posição 0.)

KKKKKKKKKKKKKKKKKKKKK

Isso mesmo cara!

Perdoe-me a distração.

Valeu.

amigão tem mais essa só para complementar o que a turma já falou:

   String x="afrg)~´dede";
        System.out.println(x.codePointAt(0));

vc escolhe o índice da String
que deseja obter o código ascii!!

De modo geral, se você vai trabalhar com bytes, EVITE usar Strings, já que elas não preservam corretamente os bytes quando você cria uma String a partir de um array de bytes. Use sempre arrays de bytes.

Exemplo:

byte[] bytes = new byte[256];
for (int i = 0; i < 256; ++i) {
    bytes[i] = (byte) i;
}
String str = new String (bytes);
byte[] strBytes = str.toByteArray ();
for (int i = 0; i < 256; ++i) {
    if (bytes[i] != strBytes[i]) {
        System.out.println ((int) bytes[i] + " eh diferente de " + (int) strBytes[i]);
    }
}

Se a conversão fosse perfeita, o código acima não imprimiria nada, mas na prática ele sempre imprime 4 ou 5 linhas.

Ae rapaziada.

Obrigado pelas dicas.

O que estou fazendo é ler um arquivo texto e tratando suas inconsistências, para que as mesmas sejam subimeteidas a uma basa de dados.

Valeu!