Java Hex 16 진수 의 byte String 변환 클래스
필요 한 친구 가 있 으 면 직접 가 져 가서 쓸 수 있다.
package mobi.dzs.android.util;
import java.util.Locale;
/**
* 16 String/Byte
* @author JerryLi
* @email [email protected]
* @data 2011-10-16
* */
public class CHexConver
{
private final static char[] mChars = "0123456789ABCDEF".toCharArray();
private final static String mHexStr = "0123456789ABCDEF";
/**
* 16
* @param sHex String 16
* @return boolean
*/
public static boolean checkHexStr(String sHex){
String sTmp = sHex.toString().trim().replace(" ", "").toUpperCase(Locale.US);
int iLen = sTmp.length();
if (iLen > 1 && iLen%2 == 0){
for(int i=0; i> 4]);
sb.append(mChars[bs[i] & 0x0F]);
sb.append(' ');
}
return sb.toString().trim();
}
/**
* ASCII
* @param str String Byte
* @return String
*/
public static String hexStr2Str(String hexStr){
hexStr = hexStr.toString().trim().replace(" ", "").toUpperCase(Locale.US);
char[] hexs = hexStr.toCharArray();
byte[] bytes = new byte[hexStr.length() / 2];
int iTmp = 0x00;;
for (int i = 0; i < bytes.length; i++){
iTmp = mHexStr.indexOf(hexs[2 * i]) << 4;
iTmp |= mHexStr.indexOf(hexs[2 * i + 1]);
bytes[i] = (byte) (iTmp & 0xFF);
}
return new String(bytes);
}
/**
* bytes
* @param b byte[] byte
* @param iLen int N N=iLen
* @return String Byte
*/
public static String byte2HexStr(byte[] b, int iLen){
StringBuilder sb = new StringBuilder();
for (int n=0; n> 4]);
sb.append(mChars[b[n] & 0x0F]);
sb.append(' ');
}
return sb.toString().trim().toUpperCase(Locale.US);
}
/**
* bytes Byte
* @param src String Byte , Byte ( :0-9 A-F)
* @return byte[]
*/
public static byte[] hexStr2Bytes(String src){
/* */
src = src.trim().replace(" ", "").toUpperCase(Locale.US);
//
int m=0,n=0;
int iLen=src.length()/2; //
byte[] ret = new byte[iLen]; //
for (int i = 0; i < iLen; i++){
m=i*2+1;
n=m+1;
ret[i] = (byte)(Integer.decode("0x"+ src.substring(i*2, m) + src.substring(m,n)) & 0xFF);
}
return ret;
}
/**
* String unicode String
* @param strText String
* @return String unicode
* @throws Exception
*/
public static String strToUnicode(String strText)
throws Exception
{
char c;
StringBuilder str = new StringBuilder();
int intAsc;
String strHex;
for (int i = 0; i < strText.length(); i++){
c = strText.charAt(i);
intAsc = (int) c;
strHex = Integer.toHexString(intAsc);
if (intAsc > 128)
str.append("\\u");
else // 00
str.append("\\u00");
str.append(strHex);
}
return str.toString();
}
/**
* unicode String String
* @param hex String 16 ( unicode 2byte)
* @return String
* @see CHexConver.unicodeToString("\\u0068\\u0065\\u006c\\u006c\\u006f")
*/
public static String unicodeToString(String hex){
int t = hex.length() / 6;
int iTmp = 0;
StringBuilder str = new StringBuilder();
for (int i = 0; i < t; i++){
String s = hex.substring(i * 6, (i + 1) * 6);
// 16 string int
iTmp = (Integer.valueOf(s.substring(2, 4), 16) << 8) | Integer.valueOf(s.substring(4), 16);
// int
str.append(new String(Character.toChars(iTmp)));
}
return str.toString();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.