单片机与安卓(java)字符串与字节,ascii之间的相互转换

// 转换十六进制编码为字节数组。可以再转为字符串
public static byte[] toStringHex(String s) {
try {
if ("0x".equals(s.substring(0, 2))) {
s = s.substring(2);
}
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();
}
}
return baKeyword;
} catch (Exception ex) {
byte[] bdata = new byte[1];
bdata[0] = 00;
return bdata;
}
}

//转换字符串为16进制ascii。
public static String stringToAscii(String value)
{
StringBuffer sbu = new StringBuffer();
char[] chars = value.toCharArray(); 
for (int i = 0; i < chars.length; i++) {
String s=Integer.toHexString((int)chars[i]);
if(s.length()==1){
s="0"+s;
}
sbu.append(s);

}
return sbu.toString();
}

// 转换字节数组为16进制字符串
public static String printHexString(byte[] b) {
try {
String str = "";
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
str += hex;
}
return str;
} catch (Exception ex) {
return "";
}
}

// 转换字节数组为ascii
public static String printString(byte[] b) {
try {
String str = "";
for (int i = 0; i < b.length; i++) {
char c=(char)b[i];


str += c;
}
return str;
} catch (Exception ex) {
return "";
}
}

你可能感兴趣的:(单片机与安卓(java)字符串与字节,ascii之间的相互转换)