/* ############################################################################### # # # Copyright (C) 2011-2016 OpenMEAP, Inc. # # Credits to Jonathan Schang & Rob Thacher # # # # Released under the LGPLv3 # # # # OpenMEAP is free software: you can redistribute it and/or modify # # it under the terms of the GNU Lesser General Public License as published # # by the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # OpenMEAP is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU Lesser General Public License for more details. # # # # You should have received a copy of the GNU Lesser General Public License # # along with OpenMEAP. If not, see <http://www.gnu.org/licenses/>. # # # ############################################################################### */ package com.openmeap.util; final public class CharUtils { private CharUtils() {} final private static char[] chars = new char[] {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; final public static boolean isHexDigit(char thisChar) { if( Character.isDigit(thisChar) || (thisChar<='f' && thisChar>='a') || (thisChar<='F' && thisChar>='A') ) { return true; } else { return false; } } final static public char toChar(String chars) { String charsLower = chars.toLowerCase(); char highChar = charsLower.length()>1?charsLower.charAt(0):'0'; char lowChar = charsLower.length()>1?charsLower.charAt(1):charsLower.charAt(0); int byteHigh = Character.isDigit(highChar) ? highChar-'0' : highChar-'a'+10; int byteLow = Character.isDigit(lowChar) ? lowChar-'0' : lowChar-'a'+10; return (char) (((byteHigh<<4) | byteLow) & 0xff); } final static public byte[] bytesValue(char thisChar) { StringBuffer sb = new StringBuffer(); sb.append(thisChar); return sb.toString().getBytes(); } }