是这样的,就是说我有个字符串strcode。strcode="0500030a02015f6d6c3400320030003100305e7400316708003365e5003a662865e54e0a7f51753591cf00350038003100284e07006b0057002e00680029002c5e744e0a7f51753591cf003100300037003300284e07006b0057002e00680029002c65e58d1f83777387003100340025ff1b65e5574751655e930033003300330028006d0033002f00730029";显然strcode的内容是个二进制或者16进制的编码。那么我想请问一下,在java里如何根据这个编码得到真实内容。
public class HexToByte { /**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
String s = "0500030a02015f6d6c3400320030003100305e7400316708003365e5003a662865e54e0a7f51753591cf00350038003100284e07006b0057002e00680029002c5e744e0a7f51753591cf003100300037003300284e07006b0057002e00680029002c65e58d1f83777387003100340025ff1b65e5574751655e930033003300330028006d0033002f00730029";
byte[] b = getHexToByteString(s);
// for(byte i:b)
// System.out.println(i);
System.out.println(new String(b,"unicode"));
}
/**
* 十六进制转换成byte数组
* @param s
* @return
*/
public static byte[] getHexToByteString(String s) {
if (s.length() % 2 == 0) {
byte[] rtn = new byte[s.length() / 2];
char[] c = s.toCharArray();
for (int i = 0; i < rtn.length; i++) {
rtn[i] = (byte) Integer.parseInt(c[2 * i] + "" + c[2 * i + 1],
16);
}
return rtn;
} else
return new byte[] {};
}
}
???彭水2010年1月3日:昨日上网电量581(万kW.h),年上网电量1073(万kW.h),日负荷率14%;日均入库333(m3/s)