android 数据类型转换大全
来源:互联网 发布:淘宝客用返利网推广 编辑:程序博客网 时间:2024/05/22 18:24
import android.text.TextUtils;import android.util.Log;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;/** * Created by snake on 2016/10/11. */public class UtilsDataConversion { private static final String TAG = "UtilsDataConversion"; // /** * 字节到字符转换 * * @param b * @return */ public static char getChar(byte[] b, int index) { int s = 0; if (b[index + 1] > 0) s += b[index + 1]; else s += 256 + b[index + 0]; s *= 256; if (b[index + 0] > 0) s += b[index + 1]; else s += 256 + b[index + 0]; char ch = (char) s; return ch; } /** * 将一个2个字节数组转换为intt。 * * @param b * @return */ public static int bytesTwo2Int(byte[] b) { int a1 = b[0] & 0xff; int a2 = (b[1] & 0xff) * 256; return (a1 + a2); } /** * 将一个4个字节数组转换为int。 * * @param b * @return */ public static int bytesFour2Int(byte[] b) { int a1 = b[0] & 0xff; int a2 = (b[1] & 0xff) * 256; int a3 = (b[2] & 0xff) * 65536; int a4 = (b[3] & 0xff) * 16777216; return (a1 + a2 + a3 + a4); } public static String ten2sixteen(long ten) { return Long.toHexString(ten); } public static byte[] long2Bytes(long num) { byte[] byteNum = new byte[8]; for (int ix = 0; ix < 8; ++ix) { int offset = 64 - (ix + 1) * 8; byteNum[ix] = (byte) ((num >> offset) & 0xff); } return byteNum; } public static byte[] int2Bytes(int num) { byte[] byteNum = new byte[4]; for (int ix = 0; ix < 4; ++ix) { int offset = 32 - (ix + 1) * 8; byteNum[ix] = (byte) ((num >> offset) & 0xff); } byte[] byte_result = new byte[] { byteNum[3], byteNum[2] }; return byte_result; } /** * Convert hex string to byte[] * * @param hexString * the hex string * @return byte[] */ public static byte[] hexStringToBytes(String hexString) { if (hexString == null || hexString.equals("")) { return null; } hexString = hexString.toUpperCase(); int length = hexString.length() / 2; char[] hexChars = hexString.toCharArray(); byte[] d = new byte[length]; for (int i = 0; i < length; i++) { int pos = i * 2; d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1])); } return d; } /** * Convert char to byte * * @param c * char * @return byte */ private static byte charToByte(char c) { return (byte) "0123456789ABCDEF".indexOf(c); } /** * ascii to string * * @param value * @return */ public static String asciiToString(String value) { StringBuffer sbu = new StringBuffer(); String[] chars = value.split(","); for (int i = 0; i < chars.length; i++) { sbu.append((char) Integer.parseInt(chars[i])); } return sbu.toString(); } /** * string to ascii * * @param value * @return */ public static String stringToAscii(String value) { StringBuffer sbu = new StringBuffer(); char[] chars = value.toCharArray(); for (int i = 0; i < chars.length; i++) { if (i != chars.length - 1) { sbu.append((int) chars[i]).append(","); } else { sbu.append((int) chars[i]); } } return sbu.toString(); } @SuppressWarnings({ "resource" }) public static byte[] getByte(File file) { byte[] bytes = null; if (file != null) { try { InputStream is = new FileInputStream(file); int length = (int) file.length(); Log.d(TAG, "the file length is= " + length); if (length > Integer.MAX_VALUE) { System.out.println("this file is max"); return null; } bytes = new byte[length]; int offset = 0; int numRead = 0; while (offset == 0) { offset += numRead; } if (offset != length) { System.out.println("file length is error"); return null; } is.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return bytes; } public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(""); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } /** * 十六进制转换字符串 * * @param hexStr str Byte字符串(Byte之间无分隔符 如:[616C6B]) * @return String 对应的字符串 */ public static String hexStr2Str(String hexStr) { String str = "0123456789ABCDEF"; char[] hexs = hexStr.toCharArray(); byte[] bytes = new byte[hexStr.length() / 2]; int n; for (int i = 0; i < bytes.length; i++) { n = str.indexOf(hexs[2 * i]) * 16; n += str.indexOf(hexs[2 * i + 1]); bytes[i] = (byte) (n & 0xff); } return new String(bytes); } /** * 十六进制转二进制 * @修改者 * @param a * @return */ public static String HToB(String a) { String b = Integer.toBinaryString(Integer.valueOf(toD(a, 16))); return b; } /** * 二进制转十六进制 * @修改者 * @param a * @return */ public static String BToH(String a) { /* 将二进制转为十进制再从十进制转为十六进制*/ String b = Integer.toHexString(Integer.valueOf(toD(a, 2))); return b; } /** * 任意进制数转为十进制数 * @修改者 * @param a * @param b * @return */ public static String toD(String a, int b) { int r = 0; for (int i = 0; i < a.length(); i++) { r = (int) (r + formatting(a.substring(i, i + 1)) * Math.pow(b, a.length() - i - 1)); } return String.valueOf(r); } /** * 将十六进制中的字母转为对应的数字 * @修改者 * @param a * @return */ public static int formatting(String a) { int i = 0; for (int u = 0; u < 10; u++) { if (a.equals(String.valueOf(u))) { i = u; } } if (a.equals("a")) { i = 10; } if (a.equals("b")) { i = 11; } if (a.equals("c")) { i = 12; } if (a.equals("d")) { i = 13; } if (a.equals("e")) { i = 14; } if (a.equals("f")) { i = 15; } return i; } /** * 将十进制中的数字转为十六进制对应的字母 * @修改者 * @param a * @return */ public static String formattingH(int a) { String i = String.valueOf(a); switch (a) { case 10: i = "a"; break; case 11: i = "b"; break; case 12: i = "c"; break; case 13: i = "d"; break; case 14: i = "e"; break; case 15: i = "f"; break; } return i; } /** * 添加字符串长度到purLen长度,添加内容为0; * @修改者 * @param str * @param purLen * @return */ public static String appendStrLen(String str, int purLen){ if(TextUtils.isEmpty(str) || str.length() >= purLen){ return str; } StringBuffer sb = new StringBuffer(); int subLen = purLen - str.length(); for (int i = 0; i < subLen; i++) { sb.append("0"); } sb.append(str); return sb.toString(); }}
上述是我整理出来的一些数据转换, 各位读者如有补充的 请给我留言,我会及时跟新补充,在此统一感谢。
0 0
- android 数据类型转换大全
- vc数据类型转换大全
- vc数据类型转换大全
- vc数据类型转换大全
- VC++数据类型转换大全
- vc数据类型转换大全
- VC++数据类型转换大全
- VC++数据类型转换大全
- vc数据类型转换大全
- VC++数据类型转换大全
- vc数据类型转换大全
- VC++数据类型转换大全
- JAVA数据类型转换大全
- VC++数据类型转换大全
- JAVA数据类型转换大全
- VC++数据类型转换大全
- VC++数据类型转换大全
- VC++数据类型转换大全
- 也许终将不再遗留成回忆
- 练习5:新浪微博
- spring的定时任务
- weka:调用内置算法挖掘数据关联规则
- 状态模式——对象行为型模式
- android 数据类型转换大全
- 关于servlet的HttpServletRequest和HttpServletResponse
- webpack常规开发配置
- SpringBoot-Learning-作者:翟永超
- swing 布局
- java文档注释1.2
- ceph存储 Jewel 版ceph安装和BlueStore配置
- TCP通信丢包主要问题及具体问题分析
- 优化文件下载性能,缓存MongoDB GRIDFS文件(实践讨论稿)