类型转换android

2016-11-15 20:21:52 xieluoxixi 阅读数 11780
我比较喜欢的是suffix 快捷键系列,用起来非常爽,代码重构一气呵成。
玩法就是,你在输入了一个对象之后,可以通过.xxx的命令+Tab键来完成快速的代码重构,比如object.cast 转型、boolean.if 变成if 结构、int.switch变成switch结构。list.fori 把这个list变成for i 的循环结构。
比如 要转换一个View 这样输入:
findViewById(R.id.your_id).cast +TAB键
这样就会自动进入转型格式变成如此
((光标在此直接输入) findViewById(R.id.your_id))
输入法回车光标回到行最后,然后你可以抽取全局,如下:
((TextView) findViewById(R.id.your_id)).field + Tab键

或者给直接声明控件

       ((TextView) findViewById(R.id.your_id)).var + Tab键


2017-02-06 09:41:23 ljw124213 阅读数 25658

在做项目时遇到了需要把年份(String)转换为int类型,对年份进行比较,顺便提取为方法,保存下来方便以后使用。

public class ConvertUtil {

	//把String转化为float
	public static float convertToFloat(String number, float defaultValue) {
		if (TextUtils.isEmpty(number)) {
			return defaultValue;
		}
		try {
			return Float.parseFloat(number);
		} catch (Exception e) {
			return defaultValue;
		}

	}

	//把String转化为double
	public static double convertToDouble(String number, double defaultValue) {
		if (TextUtils.isEmpty(number)) {
			return defaultValue;
		}
		try {
			return Double.parseDouble(number);
		} catch (Exception e) {
			return defaultValue;
		}

	}

	//把String转化为int
	public static int convertToInt(String number, int defaultValue) {
		if (TextUtils.isEmpty(number)) {
			return defaultValue;
		}
		try {
			return Integer.parseInt(number);
		} catch (Exception e) {
			return defaultValue;
		}
	}
}

使用时只需调用上面的方法即可(第二个参数是默认值):

int yeatInt = ConvertUtil.convertToInt("2017",2015);

2015-07-31 11:56:18 bear_huangzhen 阅读数 2350

这篇文章是记录我们平时在android开发过程中,经常会用到的类型转换,主要包括String、byte[]、bitmap、inputstram、Drawable之间的转换,代码如下:


<span style="font-size:18px;">import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;

public class Demo {
	
	/**
	 * bitmap 转  byte[]数组
	 */
	public byte[] bitmap2byteArray(Bitmap bitmap){
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
		byte[] bytes = baos.toByteArray();
		return bytes;
	}
	
	/**
	 * bitmap 转  inputstream
	 */
	public InputStream bitmap2InputStream(Bitmap bitmap){
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
		InputStream is = new ByteArrayInputStream(baos.toByteArray());
		return is;
	}
	
	/**
	 * byte[]数组   转   bitmap
	 */
	public Bitmap byteArray2Bitmap(byte[] bytes){
		Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
		return bitmap;
	}
	
	/**
	 * inputstream  转   bitmap 
	 */
	public Bitmap inputStream2Bitmap(InputStream is){
		Bitmap bitmap = BitmapFactory.decodeStream(is);
		return bitmap;
	}

	/**
	 * Drawable 转  bitmap
	 */
	public Bitmap drawable2Bitmap(Drawable img){
		BitmapDrawable bd = (BitmapDrawable) img;
		Bitmap bitmap = bd.getBitmap();
		return bitmap;
	}
	
	/**
	 * bitmap 转  Drawable
	 */
	public Drawable bitmap2Drawable(Bitmap bitmap){
		BitmapDrawable bd = new BitmapDrawable(bitmap);
		Drawable img = bd;
		return img;
	}
	
	/**
	 * String 转  byte[]数组
	 */
	public byte[] string2ByteArray(String str,String charset){
		byte[] bytes = null;
		if(charset == null){
			bytes = str.getBytes();
		}else{
			try {
				//如charset = "utf-8"
				bytes = str.getBytes(charset);
			} catch (Exception e) {
				// TODO: handle exception
			}
			
		}
		return bytes;
	}
	
	/**
	 * String 转  inputstream
	 */
	public InputStream string2InputStream(String str){
		InputStream is = new ByteArrayInputStream(str.getBytes());
		return is;
	}
	
	/**
	 * inputstream 转  String  方法01
	 */
	public String inputStream2String01(InputStream is) throws IOException{
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		int i = -1;
		while((i=is.read()) != -1){
			baos.write(i);
		}
		return baos.toString();
	}
	
	/**
	 * inputstream 转  String   方法02
	 */
	public String inputStream2String02(InputStream is) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(is));
		StringBuilder sb = new StringBuilder();
		String line = null;
		while((line=br.readLine()) != null){
			sb.append(line+"\n");
		}
		
		return sb.toString();
	}
	
	/**
	 * inputstream 转  String   方法03
	 */
	public String inputSteam2String03(InputStream is) throws IOException{
		StringBuilder sb = new StringBuilder();
		byte[] b =new byte[1024];
		for(int n; (n=is.read(b)) != -1;){
			String s = new String(b, 0, n);
			sb.append(s);
		}
		return sb.toString();
	}
	
}</span>


2016-10-26 19:21:27 qingsongfoxconn123 阅读数 1102

java基础数据类型:



java数据类型转换主要分为三类:

1、简单数据类型之间的转换

      简单数据类型之间的转换又分为自动类型转换(低级到高级)、强制类型转换(高级到低级以及同级之间)、包装类过度类型转换;

       注意事项:
                        boolean类型不能转换成其它数据类型;
                        低级别自动转换为高级别 :byte,short,char->int->long->float->double;
                        同级之间不会自动转换,可以强制类型转换;
                        强制类型转换室友高级别像低级别之间转化,会降低经度准确信;
                        包装类:Boolean、Character、Byte、Short、Integer、Long、Float、Double;


2、字符串与其它数据类型的转换
3、其它字符串与Date之间转换


package com.myuiapp.utils;

import android.text.TextUtils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * TODO 基础类型转换类
 *
 * @author cb2016
 * @version V 1.0
 * @date 2016/10/25 16:19.
 */
public class TypeConvert {
   /**
    * yyyy-MM-dd HH:mm:ss 格式
    */
   public static final String DEFAULT_DATE_TIME_FORMAT_PATTERN = "yyyy-MM-dd HH:mm:ss";
   /**
    * yyyy-MM-dd HH:mm 格式
    */
   public static final String DEFAULT_DATE_TIME_HHmm_FORMAT_PATTERN = "yyyy-MM-dd HH:mm";
   /**
    * yyyy-MM-dd HH 格式
    */
   public static final String DEFAULT_DATE_TIME_HH_FORMAT_PATTERN = "yyyy-MM-dd HH";
   /**
    * yyyy-MM-dd 格式
    */
   public static final String DEFAULT_DATE_FORMAT_PATTERN = "yyyy-MM-dd";
   /**
    * HH:mm:ss 格式
    */
   public static final String DEFAULT_TIME_FORMAT_PATTERN = "HH:mm:ss";
   /**
    * HH:mm 格式
    */
   public static final String DEFAULT_TIME_HHmm_FORMAT_PATTERN = "HH:mm";

   private java.util.Calendar c;   //日历类

   /**
    * string to boolean
    *
    * @return
    */
   public static boolean stingToBoolean(String value, boolean defaultValue) {
      return TextUtils.isEmpty(value) ? defaultValue : Boolean.valueOf(value);
   }


   /**
    * string to int
    */
   public static int stringToInt(String value, int defaultValue) {
      return TextUtils.isEmpty(value) ? defaultValue : Integer.parseInt(value);
   }

   /**
    * string to string
    */
   public static String getString(String value, String defaultValue) {
      return TextUtils.isEmpty(value) ? defaultValue : value;
   }


   /**
    * string to Ingeger
    */
   public static Integer stringToInteger(String value, Integer defaultValue) {
      return TextUtils.isEmpty(value) ? defaultValue : Integer.valueOf(value);
   }


   /**
    * string to long
    */
   public static long stringToLong(String value, long defaultValue) {
      return TextUtils.isEmpty(value) ? defaultValue : Long.parseLong(value);
   }


   /**
    * string to double
    */
   public static double stringToDouble(String value, double defaultValue) {
      return TextUtils.isEmpty(value) ? defaultValue : Double.parseDouble(value);
   }


   /**
    * string to float
    */
   public static float stringToFloat(String value, float defaultValue) {
      return TextUtils.isEmpty(value) ? defaultValue : Float.parseFloat(value);
   }


   /**
    * 使用日期转换pattern <p>pattern的用法参见java.text.SimpleDateFormat</p>
    *
    * @param pattern 日期解析规则
    * @return 按规则转换后的日期时间字符串
    */
   public String toDateTimeString(String pattern) {
      SimpleDateFormat fmt = (SimpleDateFormat) DateFormat.getDateInstance();
      fmt.applyPattern(pattern);
      return fmt.format(c.getTime());
   }

   // formatType格式为yyyy-MM-dd HH:mm:ss//yyyyMMdd HHmmss   // data Date类型的时间
   public static String dateToString(Date data, String formatType) {
      return new SimpleDateFormat(formatType).format(data);
   }

   // strTime要转换的string类型的时间,formatType要转换的格式yyyy-MM-dd HH:mm:ss//yyyyMMdd   // HHmmss秒,
   // strTime的时间格式必须要与formatType的时间格式相同
   public static Date stringToDate(String strTime, String formatType)
         throws ParseException {
      SimpleDateFormat formatter = new SimpleDateFormat(formatType);
      Date date = null;
      date = formatter.parse(strTime);
      return date;
   }

   /**
    * 转换为 DEFAULT_DATE_FORMAT_PATTERN (yyyy-MM-dd) 格式字符串
    *
    * @return yyyy-MM-dd格式字符串
    */
   public String toDateString() {
      return toDateTimeString(TypeConvert.DEFAULT_DATE_FORMAT_PATTERN);
   }

   /**
    * 转换为 DEFAULT_TIME_FORMAT_PATTERN (HH:mm:ss) 格式字符串
    *
    * @return HH:mm:ss 格式字符串
    */
   public String toTimeString() {
      return toDateTimeString(TypeConvert.DEFAULT_TIME_FORMAT_PATTERN);
   }

   /**
    * 转换为 DEFAULT_DATE_TIME_FORMAT_PATTERN (yyyy-MM-dd HH:mm:ss) 格式字符串
    *
    * @return yyyy-MM-dd HH:mm:ss 格式字符串
    */
   public String toDateTimeString() {
      return toDateTimeString(TypeConvert.DEFAULT_DATE_TIME_FORMAT_PATTERN);
   }


   /**
    * 将字符按照指定分隔符生成字符数组
    *
    * @param propValue
    * @param delim
    * @return
    */
   public static String[] toStringArray(String propValue, String delim) {
      if (propValue != null) {
         return propValue.split(delim);
      } else {
         return null;
      }
   }

   /**
    * list转化为数组
    *
    * @param list
    * @return
    */
   public static String[] toArray(List<String> list) {
      if (list == null) return null;
      String[] result = new String[list.size()];
      for (int i = 0; i < list.size(); i++) {
         result[i] = list.get(i);
      }
      return result;
   }


}





2018-02-09 22:32:43 zhwadezh 阅读数 6352

字符串String转换成整数int

1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue(); 

: 字串转成 Double, Float, Long 的方法大同小异. 

整数 int 转换成字符串 String

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i); 

3.) String s = "" + i; 

: Double, Float, Long 转成字串的方法大同小异.

各种数字类型转换成字符串型:

String s = String.valueOf( value); // 其中 value 为任意一种数字类型。

字符串型转换成各种数字类型:

String s = "169";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );

数字类型与数字类对象之间的转换:

byte b = 169;
Byte bo = new Byte( b );
b = bo.byteValue();

short t = 169;
Short to = new Short( t );
t = to.shortValue();

int i = 169;
Integer io = new Integer( i );
i = io.intValue();

long l = 169;
Long lo = new Long( l );
l = lo.longValue();

float f = 169f;
Float fo = new Float( f );
f = fo.floatValue();

double d = 169f;
Double dObj = new Double( d );
d = dObj.doubleValue();