String e Hex

Olá tenho uma String em Hexadecimal e gostaria de passar pra Hex

:smiley:

alguem sabe como?

e qual a variavel pra guardar HEX? int normal?

Depende

Se você tem algo como 45ba0bc1c69cc8bec37f3a4224182ec7 você precisa guardar em um array de bytes (a string hexadecimal acima tem 128 bits, isso dá 16 bytes, que não cabem em um long (que tem 8 bytes), muito menos em um int (4 bytes).

na verdade naum, o HEX q eu tenho é HEX de Cor (mas em String)
FF00A4

dai quero dividir em 3 partes (RGB) e catar o valor em inteiro da cor

acho q isso nã oexiste solução neh?

Integer.parseInt tem um parâmetro adicional que permite ler valores em hexadecimal. Por favor, consulte a documentação.

Olá

Acostume-se a ler os javadocs!

O que vc quer é passar a cor que está em uma String hexa para um inteiro? Abaixo a idéia, não é código que funcione.

Considerando que red é o inteiro correspondente ao hexa dos 2 primeiros bytes, green é o inteiro correspondente ao hexa dos 2 bytes do meio e blue é o inteiro correspondente ao hexa dos 2 últimos bytes. Cada inteiro pode ser obtido com parseInt na base 16

red = Integer.parseInt(hexa.substring(0,1), 16);
green = Integer.parseInt(hexa.substring(2,3), 16);
blue = Integer.parseInt(hexa.substring(4,5), 16);

E o valor inteiro assim:
valor = 256256red + 256*green + blue;

Veja também o que a classe java.awt.Color pode fazer por você.

[]s
Luca

Pessoal, só para dizer que a solução do luca funcionou, era realmente o q queria fazer.

valeu a todos.

Só para corrigir uma coisa, para funcionar como cor (igual a cor do HTML) é só corrigir uma coisa:

[code]String hexa = “03F5A2” //exemplo de cor em hexa
int red = 0;
int green = 0;
int blue = 0;

red = Integer.parseInt(hexa.substring(0,2), 16);
green = Integer.parseInt(hexa.substring(2,4), 16);
blue = Integer.parseInt(hexa.substring(4,6), 16); [/code]

Faltou uma coisa no seu codigo, mas que eh soh enchecao de saco minha (e talvez um desafio interessante). As cores em HTML podem ser especificadas como #AABBCC, ou como #ABC - existe esse atalho desde o HTML 3, mas pouquissima gente usa. :wink:

Bom naum entendi ehehhe, na verdade é pra isso mesmo que quero usar essa conversão, para pegar as cores de uma página da internet, mas naum entendi o q quis dizer :slight_smile:

Olá

Agora seu código ficou errado de vez. Veja você mesmo o que precisa corrigir no substring.
Do javadoc:[code]
substring

public String substring(int beginIndex,
int endIndex)

Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.

Examples:

“hamburger”.substring(4, 8) returns “urge”
“smiles”.substring(1, 5) returns “mile”

Parameters:
    beginIndex - the beginning index, inclusive.
    endIndex - the ending index, exclusive.
Returns:
    the specified substring.
Throws:
    IndexOutOfBoundsException - if the beginIndex is negative, or endIndex is larger than the length of this String object, or beginIndex is larger than endIndex.[/code]

[]s
Luca

cara sei lá, aki funcionou como eu queria, eu testei tudo e foi uma blz,

AABBCC

substring(0,2) = AA
substring(2,4) = BB
substring(4,6) = CC

Olá

  1. Isto é Java? Só JavaScript é assim.

  2. Imprimiu os valores?

[]s
Luca

é Java.
mas na boam rodou blz, testei e imprimi:

[code]String str = “AABBCC”;

System.out.println(str.substring(0,2));
System.out.println(str.substring(2,4));
System.out.println(str.substring(4,6));
System.exit(0);[/code]

[quote=“resultado do console do Eclipse”]AA
BB
CC[/quote]

Olá

Você está absolutamente certo!

Nem sei porque me envolvi nesta confusão com um método tão básico. Acho que preciso voltar a codificar!

No javadoc está bem claro!

The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.

Desculpe o mau jeito.

[]s
Luca

naum cara q isso, relaxa, eu só sabia q estava certo, porq antes dde eu perguntar como fazer a conversão eu já tinha visto essa parte de substring, eu tive q testar uma por uma, foi ai que eu entendi essa parte da documentação endIndex -1, mas relaxa, essa parte confunde mesmo, pois o vetor se string começa do zero, mas ele copia até a posição q vc quer e não ela.