Hex converteren naar/van ASCII in Java
Hallo. In deze zelfstudie onderzoeken we HEX naar/van ASCII-conversie in Java.
1. Inleiding
Om ASCII te converteren naar hexadecimale waarden in Java gebeurt in de volgende stappen –
- Verberg de tekenreeks naar de tekenreeks
- Converteer elke string naar een geheel getal
- Converteer elk geheel getal naar
toHexString()
Hex naar ASCII-conversie in Java gebeurt in de volgende stappen –
- Snijd de hexadecimale waarde in groepen van twee tekens
- Converteer het naar Base16 integer met behulp van
Integer.valueOf(…)
methode en cast naarchar
- Voeg alle tekens toe in
StringBuilder
2. Oefenen
Laten we vanaf hier wat oefenen en ik neem aan dat je Java 1.8 of hoger al op je lokale computer hebt geïnstalleerd. Ik gebruik JetBrains IntelliJ IDEA als mijn favoriete IDE. Je bent vrij om de IDE van je keuze te kiezen.
2.1 De conversie van ASCII naar Hex begrijpen
Maak een implementatieklasse in de com.practice
pakket en voeg de volgende code toe. De code converteert de ASCII-waarde naar een hexadecimale tekenreeks en drukt het resultaat af op de IDE-console.
AsciiToHex.java
package com.practice; import java.util.Arrays; import java.util.List; public class AsciiToHex { private static String convertToHex(String asciiString) throws Exception { // convert string to char array char[] chrs = asciiString.toCharArray(); StringBuilder builder = new StringBuilder(); // iterate over each element and convert it to integer for (char item: chrs) { int i = (int) item; // convert int value to hex string builder.append(Integer.toHexString(i).toUpperCase()); } return builder.toString(); } public static void main(String[] args) { List<String> asciis = Arrays.asList( "good morning world", "welcome to javacodegeeks", "Convert ASCII to Hex in Java"); try { for (String s: asciis) { if (!s.isEmpty()) { System.out.println("Original string= " + s); System.out.println("Hex Converted string= " + convertToHex(s) + "\n"); } } } catch (Exception e) { e.printStackTrace(); } } }
Voer het bestand uit als een java-toepassing en het zal de logs in de IDE-console tonen.
Console-logboeken
Original string= good morning world Hex Converted string= 676F6F64206D6F726E696E6720776F726C64 Original string= welcome to javacodegeeks Hex Converted string= 77656C636F6D6520746F206A617661636F64656765656B73 Original string= Convert ASCII to Hex in Java Hex Converted string= 436F6E7665727420415343494920746F2048657820696E204A617661
2.2 De conversie van Hex naar ASCII begrijpen
Maak een implementatieklasse in de com.practice
pakket en voeg de volgende code toe. De code converteert de hex-tekenreeks naar de ASCII-waarde en drukt het resultaat af op de IDE-console.
HexToAscii.java
package com.practice; import java.util.Arrays; import java.util.List; public class HexToAscii { private static String convertToAscii(String hexString) throws Exception { if (hexString.length() %2 !=0) { System.err.println("Input hex string is invlaid"); throw new Exception("Input input"); } StringBuilder builder = new StringBuilder(); for (int i=0 ; i<hexString.length(); i=i+2) { // splitting strings into two character group String str = hexString.substring(i, i+2); // converting each character group using valueOf(...) method int n = Integer.valueOf(str, 16); // casting to char and appending to builder builder.append((char)n); } return builder.toString(); } public static void main(String[] args) { List<String> hexStrings = Arrays.asList( "676f6f64206d6f726e696e6720776f726c64", "77656c636f6d6520746f206a617661636f64656765656b73", "436f6e766572742048657820746f20415343494920696e204a61766120"); try { for (String s: hexStrings) { if (!s.isEmpty()) { System.out.println("Original string= " + s); System.out.println("Ascii Converted string= " + convertToAscii(s) + "\n"); } } } catch (Exception e) { e.printStackTrace(); } } }
Voer het bestand uit als een java-toepassing en het zal de logs in de IDE-console tonen.
Console-logboeken
Original string= 676f6f64206d6f726e696e6720776f726c64 Ascii Converted string= good morning world Original string= 77656c636f6d6520746f206a617661636f64656765656b73 Ascii Converted string= welcome to javacodegeeks Original string= 436f6e766572742048657820746f20415343494920696e204a61766120 Ascii Converted string= Convert Hex to ASCII in Java
Dat is alles voor deze tutorial en ik hoop dat het artikel je heeft gediend met alles waar je naar op zoek was. Veel plezier met leren en vergeet niet te delen!