Converter String em Hex em Java
-
Converter String em Hex usando Array de
char
eInteger.toHexString()
-
Converter string em hex usando matriz de
byte
e formatador de string - Converter string em hex usando o codec Apache Commons
Neste artigo, aprenderemos como converter uma string em um valor hexadecimal usando quatro maneiras que são mostradas abaixo com exemplos.
Converter String em Hex usando Array de char
e Integer.toHexString()
A primeira técnica usa a conversão da string em um array de char
. Primeiro criamos um objeto de StringBuilder()
que usamos para anexar os caracteres para criar toda a cadeia de valores hexadecimais. Para converter a string em um array char
, usamos o comando toCharArray()
. Depois disso, usamos um loop aprimorado e o método Integer.toHexString()
, que aceita um único char
como argumento.
A função Integer.toHexString()
converte o char
em hexadecimal, e então usamos o método stringBuilder.append()
para anexar as strings e mostrá-las na saída.
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "This is a string";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
StringBuilder stringBuilder = new StringBuilder();
char[] charArray = str.toCharArray();
for (char c : charArray) {
String charToHex = Integer.toHexString(c);
stringBuilder.append(charToHex);
}
System.out.println("Converted Hex from String: " + stringBuilder.toString());
}
}
Resultado:
Converted Hex from String: 54686973206973206120737472696e67
Converter string em hex usando matriz de byte
e formatador de string
Neste exemplo, primeiro convertemos a string em um array de bytes getBytesFromString
usando a função getBytes()
. Temos que passar o conjunto de caracteres dentro do método getBytes()
como um argumento. Depois de obter a matriz de bytes, criamos um objeto de BigInteger
e, no construtor, passamos um valor int
1 e a matriz de bytes como argumentos.
Usamos o método String.format()
para formatar os valores do objeto bigInteger
em uma string hexadecimal. Depois de obter a string hexadecimal, nós a imprimimos.
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "We have to convert this string to hex";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
byte[] getBytesFromString = str.getBytes(StandardCharsets.UTF_8);
BigInteger bigInteger = new BigInteger(1, getBytesFromString);
String convertedResult = String.format("%x", bigInteger);
System.out.println("Converted Hex from String: " + convertedResult);
}
}
Resultado:
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Converter string em hex usando o codec Apache Commons
No último método de conversão de uma string em hexadecimal Java, usamos a biblioteca Apache Commons Codec. Para incluir a biblioteca em nosso projeto, usaremos a seguinte dependência maven:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
Como no último exemplo, obteremos um array de byte
da string que queremos converter neste programa. Em seguida, usamos a classe Hex
da biblioteca Apache Commons-Codec e chamamos seu método estático de encodeHexString()
e passamos o byteArray
como seu argumento. Em seguida, obtemos a string de volta que é convertida em hexadecimal.
Podemos usar a função encodeHex()
em vez de encodeHexString()
, mas ela retornará um array char
que devemos converter em string; entretanto, o resultado será o mesmo.
import java.nio.charset.StandardCharsets;
import org.apache.commons.codec.binary.Hex;
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "We have to convert this string to hex";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
byte[] byteArray = str.getBytes(StandardCharsets.UTF_8);
String convertedResult = Hex.encodeHexString(byteArray);
System.out.println("Converted Hex from String: " + convertedResult);
}
}
Resultado
Converted Hex from
String : 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtigo relacionado - Java String
- Como converter a string Java em Byte
- Como converter Byte Array em Hex String em Java
- Como realizar a conversão de string em array de string em Java
- Como remover string de string em Java
- Comparar Strings em Java
- Gerar String Aleatória em Java