package itu.assignments.fluidphotobrowser; import java.io.UnsupportedEncodingException; /** * * @author EtaYuy88 */ public class HexStringConverter { private static final char[] HEX_CHARS = "0123456789abcdef".toCharArray(); private static HexStringConverter hexStringConverter = null; private HexStringConverter() {} public static HexStringConverter getHexStringConverterInstance() { if (hexStringConverter==null) hexStringConverter = new HexStringConverter(); return hexStringConverter; } public String stringToHex(String input) throws UnsupportedEncodingException { if (input == null) throw new NullPointerException(); return asHex(input.getBytes()); } public String hexToString(String txtInHex) { byte [] txtInByte = new byte [txtInHex.length() / 2]; int j = 0; for (int i = 0; i < txtInHex.length(); i += 2) { txtInByte[j++] = Byte.parseByte(txtInHex.substring(i, i + 2), 16); } return new String(txtInByte); } private String asHex(byte[] buf) { char[] chars = new char[2 * buf.length]; for (int i = 0; i < buf.length; ++i) { chars[2 * i] = HEX_CHARS[(buf[i] & 0xF0) >>> 4]; chars[2 * i + 1] = HEX_CHARS[buf[i] & 0x0F]; } return new String(chars); } public String hexToDecimalAsString(String hex) { int decimal = Integer.parseInt(hex, 16); return String.valueOf(decimal); } }