toHexString
public static String toHexString(int i)은 정수 매개변수의 문자열 표현을 부호 없는 16진수 정수 형식으로 반환합니다.
인수가 음수이면 부호 없는 정수 값은 인수에 232를 더한 값이고, 그렇지 않으면 인수와 같습니다. 값을 앞에 0이 없는 16진수(기본 16) ASCII 숫자 문자열로 변환합니다. 부호 없는 숫자의 크기 값이 0이면 0 문자 '0'('u0030')으로 표시됩니다. 그렇지 않으면 부호 없는 숫자의 크기 표현에서 첫 번째 문자는 0 문자가 아닙니다. 16진수로 다음 문자를 사용하세요.
0123456789abcdef
이러한 문자의 범위는 'u0030'~'u0039', 'u0061'~'u0066'입니다. 대문자를 원하는 경우 결과에 대해 String.toUpperCase() 메서드를 호출할 수 있습니다.
Integer.toHexString(n).toUpperCase()
매개변수:
i - 변환할 정수 끈.
반환:
16진수(기본 16) 인수로 된 부호 없는 정수 값의 문자열 표현입니다.
//문자열을 16진수 인코딩으로 변환
public static String toHexString(String s)
{
String str=""
for (int i=0;i< s.length ();i++)
{
int ch = (int)s.charAt(i);
String s4 = Integer.toHexString(ch)
str = str + s4; }
return str;
}
// 16진수 인코딩을 문자열로 변환
public static String toStringHex(String s)
{
byte[] baKeyword = new byte[s.length ()/2];
for(int i = 0; i < baKeyword.length; i++)
{
try
{
baKeyword[i ] = (바이트)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16));
}
catch(Exception e)
{
e.printStackTrace()
}
}
시도
{
s = new String(baKeyword, "utf-8");//UTF-16le:Not
}
catch(예외 e1 )
{
e1.printStackTrace();
}
return s;
}
// 16진수 인코딩을 문자열로 변환
public static String toStringHex(String s)
{
byte[] baKeyword = new byte[s.length()/2]
for(int i = 0; i < baKeyword.length ; i++)
{
try
{
baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16) )
}
catch( 예외 e)
{
e.printStackTrace();
}
}
try
{
s = new String (baKeyword, "utf-8");/ /UTF-16le:
}
catch(예외 e1)
{
e1.printStackTrace();
}
return s; void main(String[] args) {
System.out.println(encode("中文"));
System.out.println(decode(encode( "중국어")));
/*
* 16진수 문자 집합
*/
private static String hexString="0123456789ABCDEF";
/*
* 문자열을 모든 문자에 적용할 수 있는 16진수로 인코딩합니다. (중국어 포함)
*/
public static String encode(String str)
{
//기본 인코딩에 따라 문자 가져오기 섹션 배열
byte[] bytes=str.getBytes ();
StringBuilder sb=new StringBuilder(bytes.length*2)
//바이트 배열의 각 바이트를 2자리 16진수 정수로 분해합니다.
for(int i=0;i
sb.append(hexString.charAt((bytes[i]&0xf0)>>4 ))
sb.append(hexString.charAt((bytes[i]) &0x0f)>>0));
}
return sb.toString();
}
/*
* 16진수를 문자열로 디코딩합니다(중국어 포함). )
*/
public static String decode(String bytes)
{
ByteArrayOutputStream baos= new ByteArrayOutputStream(bytes.length()/2)
//각 2자리 16진수 조합; 정수를 1바이트로 변환
for(int i=0;i
return new String( baos.toByteArray());
}
두 번째 방법:
지정된 바이트 배열을 인쇄합니다. 16진수 형식의 콘솔package com.nantian.iclient.atm.sdb;
public class Util {
public Util() {
}
/**
* 将指定byte数组以16进制的形式打印到控制台
* @param hint String
* @param b byte[]
* @return void
*/
public static void printHexString(String hint, byte[] b) {
System.out.print(hint);
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
System.out.print(hex.toUpperCase() + " ");
}
System.out.println("");
}
/**
*
* @param b byte[]
* @return String
*/
public static String Bytes2HexString(byte[] b) {
String ret = "";
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
ret += hex.toUpperCase();
}
return ret;
}
/**
* 将两个ASCII字符合成一个字节;
* 如:"EF"--> 0xEF
* @param src0 byte
* @param src1 byte
* @return byte
*/
public static byte uniteBytes(byte src0, byte src1) {
byte _b0 = Byte.decode("0x" + new String(new byte[]{src0})).byteValue();
_b0 = (byte)(_b0 << 4);
byte _b1 = Byte.decode("0x" + new String(new byte[]{src1})).byteValue();
byte ret = (byte)(_b0 ^ _b1);
return ret;
}
/**
* 将指定字符串src,以每两个字符分割转换为16进制形式
* 如:"2B44EFD9" --> byte[]{0x2B, 0x44, 0xEF, 0xD9}
* @param src String
* @return byte[]
*/
public static byte[] HexString2Bytes(String src){
byte[] ret = new byte[8];
byte[] tmp = src.getBytes();
for(int i=0; i<8; i++){
ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]);
}
return ret;
}
}
자세한 내용 JAVA 16진수 문자열 변환 관련 기사는 PHP 중국어 웹사이트를 참고하세요!