String转int、float、double、byte[]、bitmap

Int i = Integer.parseInt(str);

Float f = Float.parseFloat(str);

Double d = Double.parseDouble(str);   

//将16进制字符串转byte数组

public static byte[] hexStringToByte(String str) {
if(str == null || str.trim().equals("")) {
return new byte[0];
}
   byte[] bytes = new byte[str.length() / 2];
for(int i = 0; i < str.length() / 2; i++) {
String subStr = str.substring(i * 2, i * 2 + 2);
bytes[i] = (byte) Integer.parseInt(subStr, 16);
}
return bytes;
} String.format("%04x", i);//将10进制整形转16进制字符串,%04x2字节表示不足位补0 //将String字符串转回Bitmap public Bitmap stringToBitmap(String string) {
  Bitmap bitmap = null;
  try {
  byte[] bitmapArray;
   bitmapArray = Base64.decode(string, Base64.DEFAULT);
   bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0,bitmapArray.length);
  } catch (Exception e) {
  e.printStackTrace();
  }
  return bitmap;
}

Int转string、byte[]

String str = String.valueOf(i);//效率最高

//将Int转byte[]数组

public static byte[] intToBytes2(int n){
byte[] b = new byte[4];
for(int i = 0;i < 4;i++){
b[i] = (byte)(n >> (24 - i * 8));
}
return b;
}

Byte[]转string、int、bitmap

//byte数组转16进制字符串

private String bytes2HexString(byte[] b, int length) {
StringBuilder r = new StringBuilder();
for (int i = 0; i < length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = "0" + hex;
}
r.append(hex.toUpperCase());
}
return r.toString();
} //byte数组转16进制字符串 public static int byteToInt(byte[] b) {
int mask=0xff;
int temp=0;
int n=0;
for(int i=0;i<b.length;i++){
n<<=8;
temp=b[i]&mask;
n|=temp;
}
return n;
} //byte数组转bitmap byte[] b = getIntent().getByteArrayExtra("bitmap");
Bitmap bitmap = BitmapFactory.decodeByteArray(b, 0, b.length); //将byte数组以16进制的形式打印到控制台 public static void printHexString( byte[] b) {
StringBuilder str= new StringBuilder();
for (byte aB : b) {
String hex = Integer.toHexString(aB & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
str.append(hex.toUpperCase()).append(" ");
}
Log.i("cmd", str.toString());
}

Bitmap转string、byte[]

//将Bitmap转base64字符串

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,90,outputStream );//压缩90%
byte[] imagebyte = outputStream.toByteArray();
String imageStr = Base64.encode(imagebyte); //将Bitmap转byte[] ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] datas = baos.toByteArray();

View转Bitmap

public static Bitmap view2Bitmap(View view) {
if (view == null) return null;
Bitmap ret = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(ret);
Drawable bgDrawable = view.getBackground();
if (bgDrawable != null) {
bgDrawable.draw(canvas);
} else {
canvas.drawColor(Color.WHITE);
}
view.draw(canvas);
return ret;
}

Gson高精度String、Float[]互转(测试可保留6位数以上)

//Float[]转String

float feature[] = new float[256];
Gson gson = new Gson();
String str = gson.toJson(feature.clone()); //String高精度还原Float[] Gson gson = new Gson();
float[] f = gson.fromJson(str, float[].class);

CRC16检验

private int CRC16_Check(byte Pushdata[]){
int Reg_CRC=0xffff;
int temp;
int i,j;
//帧头校验字去掉
for( i = 2; i<Pushdata.length-2; i ++)
{
temp = Pushdata[i];
if(temp < 0) temp += 256;
temp &= 0xff;
Reg_CRC^= temp; for (j = 0; j<8; j++)
{
if ((Reg_CRC & 0x0001) == 0x0001)
Reg_CRC=(Reg_CRC>>1)^0xA001;
else
Reg_CRC >>=1;
}
}
return (Reg_CRC&0xffff);
}

Android常用数据类型转换的更多相关文章

  1. Android 常用数据适配器SimpleAdapter

    在<Android 常用数据适配器ArrayAdapter>中介绍了ArrayAdapter数据适配器.但是存在一个缺陷,那就是条目的图标都固定相同,要显示每个条目的图标都不相同,那么使用 ...

  2. Python基础学习笔记(九)常用数据类型转换函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...

  3. 泛型集合、datatable常用数据类型转换Json帮助类

    泛型集合.datatable常用数据类型转换Json帮助类 using System; using System.Data; using System.Configuration; using Sys ...

  4. Android 常用数据适配器ArrayAdapter

    接着上篇文章<Android 采用Layout Inflater创建一个View对象>,本文采用常用数据适配器ArrayAdapter 新建项目后,在layout文件夹下新建list_it ...

  5. Python常用数据类型转换

    常用的数据类型转换 目标 了解类型转换的作用 掌握常用的类型转换 函数 说明 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ...

  6. python运算符和常用数据类型转换

    运算符 算术运算符 运算符 描述 实例 + 加 两个对象相加 a + b 输出结果 30 - 减 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 两个数相乘或是返回一个被重复若干 ...

  7. java常用数据类型转换

    在Java开发过程中经常会涉及到数据类型的转换问题,比如数字型转字符型,字符型转日期型,字符串转数组等等,以及其他类型的强制转换等.经常出现,所以有必要总结一下. 1.如何将字串 String 转换成 ...

  8. Android 常用数据操作封装类案例

    1.DbHelper类 继承自SQLiteOpenHelper类,实现对数据库的基本操作 package com.example.utils; import android.content.Conte ...

  9. 【Java】常用数据类型转换(BigDecimal、包装类、日期等)

    新工作转到大数据方向,每天都要面对数据类型互相转换的工作,再加上先前面试发现这部分的知识盲点, 决定复习之余自己再写一套便捷的方法,以后会比较方便.(虽然公司有现成封装的类,里头还有些遗漏的地方,暂时 ...

随机推荐

  1. Dispatch Queue 之内存中常驻的几个结构

    _dispatch_main_q 也就是主要主队列,一定运行在主线程里. // 6618342 Contact the team that owns the Instrument DTrace pro ...

  2. python实现归并排序算法

    归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(nlogn). 1945年由约翰·冯·诺伊曼首次提出.该算法是采用分治法(Divide ...

  3. 简介 - RESTful

    RESTful REST(Representational State Transfer,表现层状态转化),可以简单理解为"资源在网络中以某种表现形式进行状态转移" Resourc ...

  4. Tools - 浏览器Chrome

    Chrome HomePage:https://www.google.com/chrome/ Chrome应用商店:https://chrome.google.com/webstore/categor ...

  5. OC学习4——OC新特性之块(Block)

    文章主要参考  关于OC中的block自己的一些理解(一) 对块的深入理解  浅析ios开发中Block块语法的妙用 1.关于block block的作用:保存一段代码. 苹果官方推荐的一种语法,类似 ...

  6. Python函数学习——匿名函数

    匿名函数 匿名函数就是不需要显式的指定函数名. 关键字lambda表示匿名函数,冒号前面的n表示函数参数,可以有多个参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达 ...

  7. 浏览器上安装vue devtools

    安装前要检查一下node版本的(node -v),必须将版本提高到>4.4.7.低版本的node在安装devtools时执行npm install 时报错.如何升级node版本,若在window ...

  8. 基于httpclient的效率优化

    1.背景 我们有个业务,会调用其他部门提供的一个基于http的服务,日调用量在千万级别.使用了httpclient来完成业务.之前因为qps上不去,就看了一下业务代码,并做了一些优化,记录在这里. 先 ...

  9. Linux学习笔记之九————ubuntu软件安装与卸载

    一.更新 源 1. 寻找国内镜像源 所谓的镜像源:可以理解为提供下载软件的地方,比如Android手机上可以下载软件的91手机助手:iOS手机上可以下载软件的AppStore 2. 备份Ubuntu默 ...

  10. 小程序flex容器

    flex:默认:水平方向是主轴,垂直方向是交叉轴,分布在第四象限,项目时在主轴方向上排列, 排满之后在交叉轴方向上换行: 1.设置容器的属性 display:flex 通过设置坐标轴来设置项目的排列方 ...