Android开发中的常见数值转换包括:byte转String、byte转int、int转hex等等。
public class ByteUtil {
public static byte[] charToByte(char c) {
byte[] b = new byte[2];
b[0] = (byte) ((c & 0xFF00) >> 8);
b[1] = (byte) (c & 0xFF);
return b;
}
public static void showBuffer(byte[] bytes,int size) {
MyLog.e(ByteUtil.class, toString(bytes, size));
}
public static void showBuffer(String tag, byte[] bytes,int size) {
Log.e(tag, toString(bytes, size));
}
public static char byteToChar(byte[] b) {
char c = (char) (((b[0] & 0xFF) << 8) | (b[1] & 0xFF));
return c;
}
public static String toHex(byte b) {
return ("" + "0123456789ABCDEF".charAt(0xf & b >> 4) + "0123456789ABCDEF".charAt(b & 0xf));
}
public static String toString(byte[] bytes,int size) {
String ss="123";
for (int i = 0; i < size; i++) {
ss+=toHex(bytes[i])+" ";
}
return ss;
}
public static int toInt(String hex) {
int ss=0;
if ((hex.charAt(0)-'A')>=0) {
ss+=(hex.charAt(0)-'A'+10)*16;
}else {
ss+=(hex.charAt(0)-'0')*16;
}
if ((hex.charAt(1)-'A')>=0) {
ss+=hex.charAt(1)-'A'+10;
}else {
ss+=hex.charAt(1)-'0';
}
return ss;
}
public static int[] byte2int(byte[] bytes,int index,int size){
int[] temp=new int[size*2];
int k=0;
for (int i = 0; i < size; i++) {
temp[k++]=0xF0 & bytes[index+i];
temp[k++]=0xF0 & (0x0F & bytes[index+i])<<4;
}
return temp;
}
public static int[] str2int(String[] strings){
int[] temp=new int[strings.length*2];
int k=0;
for (int i = 0; i < strings.length; i++) {
temp[k++]=hex2int(strings[i].charAt(0));
temp[k++]=hex2int(strings[i].charAt(1));
}
return temp;
}
public static int hex2int(char c){
if (c>='0'&& c<='9') {
return (c-'0')*16;
}
if (c>='A'&& c<='F') {
return (c-'A'+10)*16;
}
return 0;
}
public static int toInt(byte b){
return (int) b & 0xFF;
}
public static boolean isNumeric(String str){
return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
}
}