java怎么将16进制文件字符串转成普通字符串 请教JAVA怎么将十六进制转换为字符串,多谢

java 16\u8fdb\u5236\u5b57\u7b26\u4e32\u600e\u4e48\u8f6c\u6362\u621010\u8fdb\u5236\u5b57\u7b26\u4e32

toHexString
public static String toHexString(int
i)\u4ee5\u5341\u516d\u8fdb\u5236\u7684\u65e0\u7b26\u53f7\u6574\u6570\u5f62\u5f0f\u8fd4\u56de\u4e00\u4e2a\u6574\u6570\u53c2\u6570\u7684\u5b57\u7b26\u4e32\u8868\u793a\u5f62\u5f0f\u3002
\u5982\u679c\u53c2\u6570\u4e3a\u8d1f\uff0c\u90a3\u4e48\u65e0\u7b26\u53f7\u6574\u6570\u503c\u4e3a\u53c2\u6570\u52a0\u4e0a
232\uff1b\u5426\u5219\u7b49\u4e8e\u8be5\u53c2\u6570\u3002\u5c06\u8be5\u503c\u8f6c\u6362\u4e3a\u5341\u516d\u8fdb\u5236\uff08\u57fa\u6570 16\uff09\u7684\u65e0\u524d\u5bfc 0 \u7684 ASCII \u6570\u5b57\u5b57\u7b26\u4e32\u3002\u5982\u679c\u65e0\u7b26\u53f7\u6570\u7684\u5927\u5c0f\u503c\u4e3a\u96f6\uff0c\u5219\u7528\u4e00\u4e2a\u96f6\u5b57\u7b26 '0'
('\u0030') \u8868\u793a\u5b83\uff1b\u5426\u5219\uff0c\u65e0\u7b26\u53f7\u6570\u5927\u5c0f\u7684\u8868\u793a\u5f62\u5f0f\u4e2d\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\u5c06\u4e0d\u662f\u96f6\u5b57\u7b26\u3002\u7528\u4ee5\u4e0b\u5b57\u7b26\u4f5c\u4e3a\u5341\u516d\u8fdb\u5236\u6570\u5b57\uff1a
0123456789abcdef

\u8fd9\u4e9b\u5b57\u7b26\u7684\u8303\u56f4\u662f\u4ece '\u0030' \u5230 '\u0039' \u548c\u4ece '\u0061' \u5230 '\u0066'\u3002\u5982\u679c\u5e0c\u671b\u5f97\u5230\u5927\u5199\u5b57\u6bcd\uff0c\u53ef\u4ee5\u5728\u7ed3\u679c\u4e0a\u8c03\u7528
String.toUpperCase() \u65b9\u6cd5\uff1a
Integer.toHexString(n).toUpperCase()
\u53c2\u6570\uff1a
i
- \u8981\u8f6c\u6362\u6210\u5b57\u7b26\u4e32\u7684\u6574\u6570\u3002
\u8fd4\u56de\uff1a
\u7528\u5341\u516d\u8fdb\u5236\uff08\u57fa\u6570 16\uff09\u53c2\u6570\u8868\u793a\u7684\u65e0\u7b26\u53f7\u6574\u6570\u503c\u7684\u5b57\u7b26\u4e32\u8868\u793a\u5f62\u5f0f\u3002
// \u8f6c\u5316\u5b57\u7b26\u4e32\u4e3a\u5341\u516d\u8fdb\u5236\u7f16\u7801

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;
}

// \u8f6c\u5316\u5341\u516d\u8fdb\u5236\u7f16\u7801\u4e3a\u5b57\u7b26\u4e32
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(Exception e)

{
e.printStackTrace();
}
}
try
{
s = new
String(baKeyword, "utf-8");//UTF-16le:Not
}
catch (Exception e1)
{

e1.printStackTrace();
}
return s;
}
// \u8f6c\u5316\u5341\u516d\u8fdb\u5236\u7f16\u7801\u4e3a\u5b57\u7b26\u4e32

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(Exception e)

{
e.printStackTrace();
}
}
try
{
s = new
String(baKeyword, "utf-8");//UTF-16le:Not
}
catch (Exception e1)
{

e1.printStackTrace();
}
return s;
}
public static void
main(String[] args) {
System.out.println(encode("\u4e2d\u6587"));

System.out.println(decode(encode("\u4e2d\u6587")));
}
/*
* 16\u8fdb\u5236\u6570\u5b57\u5b57\u7b26\u96c6

*/
private static String hexString="0123456789ABCDEF";
/*
*
\u5c06\u5b57\u7b26\u4e32\u7f16\u7801\u621016\u8fdb\u5236\u6570\u5b57,\u9002\u7528\u4e8e\u6240\u6709\u5b57\u7b26\uff08\u5305\u62ec\u4e2d\u6587\uff09
*/
public static String encode(String str)

{
//\u6839\u636e\u9ed8\u8ba4\u7f16\u7801\u83b7\u53d6\u5b57\u8282\u6570\u7ec4
byte[] bytes=str.getBytes();
StringBuilder
sb=new StringBuilder(bytes.length*2);
//\u5c06\u5b57\u8282\u6570\u7ec4\u4e2d\u6bcf\u4e2a\u5b57\u8282\u62c6\u89e3\u62102\u4f4d16\u8fdb\u5236\u6574\u6570
for(int
i=0;i<bytes.length;i++)
{

sb.append(hexString.charAt((bytes[i]&0xf0)>>4));

sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
}
return
sb.toString();
}
/*
* \u5c0616\u8fdb\u5236\u6570\u5b57\u89e3\u7801\u6210\u5b57\u7b26\u4e32,\u9002\u7528\u4e8e\u6240\u6709\u5b57\u7b26\uff08\u5305\u62ec\u4e2d\u6587\uff09
*/
public
static String decode(String bytes)
{
ByteArrayOutputStream baos=new
ByteArrayOutputStream(bytes.length()/2);
//\u5c06\u6bcf2\u4f4d16\u8fdb\u5236\u6574\u6570\u7ec4\u88c5\u6210\u4e00\u4e2a\u5b57\u8282
for(int
i=0;i<bytes.length();i+=2)

baos.write((hexString.indexOf(bytes.charAt(i))<<4
|hexString.indexOf(bytes.charAt(i+1))));
return new
String(baos.toByteArray());
}

\u7b2c\u4e8c\u79cd\u65b9\u6cd5\uff1a
\u5c06\u6307\u5b9abyte\u6570\u7ec4\u4ee516\u8fdb\u5236\u7684\u5f62\u5f0f\u6253\u5370\u5230\u63a7\u5236\u53f0

\u590d\u5236\u4ee3\u7801
\u4ee3\u7801\u5982\u4e0b:


package com.nantian.iclient.atm.sdb;


public class Util {
public Util() {
}

/**
*
\u5c06\u6307\u5b9abyte\u6570\u7ec4\u4ee516\u8fdb\u5236\u7684\u5f62\u5f0f\u6253\u5370\u5230\u63a7\u5236\u53f0
* @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;
}


/**
* \u5c06\u4e24\u4e2aASCII\u5b57\u7b26\u5408\u6210\u4e00\u4e2a\u5b57\u8282\uff1b
* \u5982\uff1a"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;
}

/**
*
\u5c06\u6307\u5b9a\u5b57\u7b26\u4e32src\uff0c\u4ee5\u6bcf\u4e24\u4e2a\u5b57\u7b26\u5206\u5272\u8f6c\u6362\u4e3a16\u8fdb\u5236\u5f62\u5f0f
* \u5982\uff1a"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;
}

}

private static String hexString = "0123456789ABCDEF";public static void main(String[] args) { System.out.println(encode("\u4e2d\u6587")); System.out.println(decode(encode("\u4e2d\u6587")));}/* * \u5c06\u5b57\u7b26\u4e32\u7f16\u7801\u621016\u8fdb\u5236\u6570\u5b57,\u9002\u7528\u4e8e\u6240\u6709\u5b57\u7b26\uff08\u5305\u62ec\u4e2d\u6587\uff09 */public static String encode(String str) { // \u6839\u636e\u9ed8\u8ba4\u7f16\u7801\u83b7\u53d6\u5b57\u8282\u6570\u7ec4 byte[] bytes = str.getBytes(); StringBuilder sb = new StringBuilder(bytes.length * 2); // \u5c06\u5b57\u8282\u6570\u7ec4\u4e2d\u6bcf\u4e2a\u5b57\u8282\u62c6\u89e3\u62102\u4f4d16\u8fdb\u5236\u6574\u6570 for (int i = 0; i > 4));sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));} return sb.toString();}/* * \u5c0616\u8fdb\u5236\u6570\u5b57\u89e3\u7801\u6210\u5b57\u7b26\u4e32,\u9002\u7528\u4e8e\u6240\u6709\u5b57\u7b26\uff08\u5305\u62ec\u4e2d\u6587\uff09 */public static String decode(String bytes) { ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2); // \u5c06\u6bcf2\u4f4d16\u8fdb\u5236\u6574\u6570\u7ec4\u88c5\u6210\u4e00\u4e2a\u5b57\u8282 for (int i = 0; i < bytes.length(); i += 2)baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString.indexOf(bytes.charAt(i + 1)))); return new String(baos.toByteArray());}\u4eb2\u6d4b\u53ef\u884c\uff0c\u652f\u6301\u4e2d\u6587\uff01\uff01\uff01

将指定byte数组以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;
}

}

这个也不用转呀
String s = "\u5F20\u4E09";
System.out.println(s);
输出的就是张三

  • java 涓庝箞鎶涓涓瓧浠鍗佸叚杩涘埗鐨勬柟寮忚緭鍑
    绛旓細public class PrintHex { // 澶囬瀛楃 static final char digits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8','9', 'A', 'B', 'C', 'D', 'E', 'F'};public static void main(String[] args) { int Num = 64;//瑕佽浆鎹㈢殑鏁板瓧 int length =32;char...
  • JAVA濡備綍灏16杩涘埗鏁板瓧杞崲涓篈SCII涓殑瀛楃涓銆
    绛旓細浣跨敤杩欎釜鏂规硶鍙互浼犺繘鍘荤殑16杩涘埗鐨勬暟瀛楃粍鎴愮殑瀛楃涓杞寲涓簎tf-8鏍煎紡鐨勫瓧绗︿覆 public static String toStringHex1(String s) { byte[] baKeyword = new byte[s.length() / 2];for (int i = 0; i < baKeyword.length; i++) { try { baKeyword[i] = (byte) (0xff & Integer.parseInt(...
  • java涓浣澹版槑涓涓崄鍏繘鍒剁殑瀛楃涓,鎴栬呰,鎬庝箞鍙戦佷竴涓鍗佸叚杩涘埗鏁...
    绛旓細杩欎釜绠鍗曪紱int a=0x3F668511;int b=0x1E;System.out.println(Integer.toHexString(a)+Integer.toHexString(b));鍊煎緱娉ㄦ剰鐨勬槸16杩涘埗涓浣嶄唬琛4浣2杩涘埗锛涙墍浠nt绫诲瀷鏈澶氭湁4涓瓧鑺傘8浣16杩涘埗鏁帮紱
  • java 涓濡傛灉灏嗕竴涓鍗佸叚杩涘埗瀛楃涓杞寲鎴愪竴涓狟yteBuffer 姣斿0xFA...
    绛旓細import java.nio.ByteBuffer;public class aa { public static void main(String []args){ String str= "0xFA";// 鍒涘缓涓涓ぇ灏忎负str.length()鐨勫瓧鑺傜紦鍐插尯 ByteBuffer bytebuffer=ByteBuffer.allocate(str.length());// 鍦ㄨ繖涓瓧鑺傜紦鍐插尯涓斁鍏ユ垜浠寚瀹氱殑 瀛楃鐨勫瓧鑺傛暟缁,寰楀埌琛ㄧず鎸囧畾瀛楃鐨...
  • java灏嗗崄鍏繘鍒杞寲涓瀛楃涓!
    绛旓細; System.out.println(new String(Hex.decodeHex(data.toCharArray()), Charsets.UTF_8)); }}缂栬瘧锛javac -cp commons-io-2.4.jar:commons-codec-1.7.jar Test.java 杩愯锛歫ava -cp .:commons-io-2.4.jar:commons-codec-1.7.jar Test ...
  • java鎶16杩涘埗鏁版嵁鍐欏叆鏂囦欢
    绛旓細java鎶16杩涘埗鏁版嵁鍐欏叆鏂囦欢 浣犳病鎼炴槑鐧戒竴涓棶棰橈紝鈥16杩涘埗鈥濇槸鎸囬噰鐢ㄢ16杩涘埗鈥濇潵琛ㄧず鏁版嵁锛屽苟涓嶆槸璇村唴瀛樹腑鐨勬暟鎹篃浼氬彉鎴16杩涘埗銆傚唴瀛樹腑鐨勬暟鎹缁堟槸1銆0缁勬垚鐨勪簩杩涘埗銆傛瘮濡傦細10杩涘埗鐨10銆傚唴瀛樹腑鐨勫兼槸1010锛岃岄噰鐢ㄢ16杩涘埗鈥濆垯琛ㄧず涓0xA锛屽唴瀛樹腑鐨勬暟鎹繕鏄1010銆傚啓鍥剧墖鏂囦欢鏄笉鑳介噰鐢ㄢ滃啓瀛楃涓鈥...
  • java涓16杩涘埗鍨嬬殑瀛楃涓鈥淔F0202FF鈥鎬庢牱杞崲鎴16杩涘埗鐨勨淔F 02 02...
    绛旓細String str="FF0202FF"; //瑕佷繚璇侀暱搴︽槸鍋舵暟骞朵笖鏄悎娉曠殑鍗佸叚杩涘埗 int len=str.length()/2;byte b[]=new byte[len];int n=0;while(n<len){ String s=str.substring(n*2, n*2+2);b[n++]=(byte)Integer.parseInt(s, 16);} OutputStream os = mSocketClient.getOutputStream();os....
  • java涓浣瀹炵幇BCD鐮佸瓧绗︿覆涓16杩涘埗瀛楃涓鐨勪簰杞
    绛旓細鎶16杩涘埗瀛楃涓杞崲鎴愬瓧鑺傛暟缁 param hex return / public static byte[] hexStringToByte(String hex) { int len = (hex.length() / 2);byte[] result = new byte[len];char[] achar = hex.toCharArray();for (int i = 0; i < len; i++) { int pos = i * 2;result[i] = ...
  • java涓 hex 杞崲鎴瀛楃涓 鎬庝箞杞
    绛旓細//鎶hex缂栫爜杞崲涓簊tring public static String decode(String bytes) { bytes = bytes.toUpperCase();ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);// 灏嗘瘡2浣16杩涘埗鏁存暟缁勮鎴愪竴涓瓧鑺 for (int i = 0; i < bytes.length(); i += 2)baos.write((...
  • java涓浣曞皢涓缁16杩涘埗杞崲涓烘槑鏂
    绛旓細涓嶇煡閬撲綘璇寸殑16杩涘埗鏄粈涔堢紪鐮侊紝涓鑸兘鏄痷nicode缂栫爜鍚с俇nicode->涓枃杞崲浠g爜锛歩mport java.io.UnsupportedEncodingException;public class TestUnicode{ public static void main(String[] args) throws UnsupportedEncodingException { String s = "绠浠"; System.out.println(s+" --鐨剈nicode...
  • 扩展阅读:16进制转换为十进制java ... java解析二进制文件 ... java字符串转16进制 ... 16进制文件如何看懂 ... 日期怎么用16进制表示 ... java16进制转10 ... 16进制在线转换器 ... 16进制计算器 ... 16进制内码转换汉字在线 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网