数据转换在编程里面是十分常用的,将平常可能用到的数据转换类型总结起来会在以后码代码的过程中有很大帮助。

  在数据转换之前,需要明白的是基础数据类型的自动转换和强制转换。接下来就先从数据类型的容量讲起。

1、基本数据类型的容量(即表示值的范围)

  ps:boolean不参与数据类型的转换,所以不讲

  基本数据类型   包装类型                  字节及范围

  byte          Byte      【-128,127】 1个字节(【-2的7次方,2的7次方-1】)   一个字节有8位

  short           Short      【-32768,32767】 2个字节(【-2的15次方,2的15次方-1】)  2*8-1

  int           Integer     【-2147483648,2147483647】 4个字节(【-2的31次方,2的31次方-1】)4*8-1

  long           Long      【-9223372036854774808,9223372036854774807】 8个字节 (【-2的63次方,2的63次方-1】) 8*8-1

  

  float           Float      【-3.403e38,3.403e38】4个字节

  double           Double            【-1.798e308,1.798e308】8个字节  

  char           Character         2个字节

各数据类型按容量大小由小到大排列为:

 (byte, short, char)  ——int ——long——float——double

2、基本数据类型转换的基本原则

  1)容量小的类型自动转换为容量的类型;

  

 public class TS{

     public static void main(String [] args){
byte a = 2;
int b = a;
long c = b;
float d = c;
double e = d;
System.out.println(e);
} }

结果为 。

又或者是 char c='a'; int i=c;  输出的i结果为97,即为对应的ASCII值

  2)容量大的类型转换为容量小的类型时,要加强制转换符;(有可能会精度损失)

 public class TS{

     public static void main(String [] args){
double e = 2.123456789;
int i = (int)e;
float j = (float)e;
System.out.println(i);
System.out.println(j);
} }

运行结果为,出现了精度的损失。

  3)byte,short,char之间不会自动互相转换,并且三者在计算时首先转换为int类型;

需要强制转换时可以如下操作:

  short i=97 ;

  char c=(char)i;

  System.out.println("output:"+c);输出:output:a;

  4)实数常量默认为double类型, 整数常量默认为int类型;

ps:当有表达式时(计算),有以下规则使得数据类型自动提升:

①所有的byte,short,char型的值将被提升为int型;

②如果有一个操作数是long型,计算结果是long型;

③如果有一个操作数是float型,计算结果是float型;

④如果有一个操作数是double型,计算结果是double型;

3、引用数据类型(String)的转换

  1)将其他数据类型转换为字符串

  ①调用类的串转换方法:X.toString();
  ②自动转换:X+“”;
  ③使用String的方法:String.volueOf(X);
 
  2)字符串向其他类型转换
  ①先转换成相应的封装器实例,再调用对应的方法转换成其它类型

  eg.int i = Integer.valueOf(“32.1”).intValue();
  
 
  ②静态parseXXX方法
  String s = "1";
  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 );
 
  ③getByte转为byte数组
  byte b [] =s.getBytes();

最新文章

  1. IOS 调用系统照相机和相册
  2. mysql 查询数据库表结构
  3. sqlmap用户手册
  4. cout 计算顺序问题
  5. 【转】How-To-Ask-Questions-The-Smart-Way
  6. myeclipse如何导入相应的jar包
  7. PAT-乙级-1029. 旧键盘(20)
  8. SQLSERVER清空(Truncate)被外键引用的数据表
  9. 基于Lua脚本解决实时数据处理流程中的关键问题
  10. 导出pdf功能
  11. 工作流JBPM
  12. LR12集合点设置和多个负载生成器策略
  13. DotNetBar的窗口样式丢失
  14. 2018蓝桥杯 省赛B题(明码)
  15. CODEVS 2455 繁忙的都市 SCOI2005(洛谷 P2330)
  16. 正則表達式 - C语言
  17. 【LeetCode】1. 两数之和
  18. 对Spring中IOC和DI的理解
  19. 可以替代alert 的漂亮的Js弹框
  20. Windows下Mongodb安装及配置

热门文章

  1. hihocoder挑战赛26
  2. Java split()用法
  3. php案列4
  4. Java8新特性——接口的默认方法和类方法
  5. CentOS_7.2安装Redis_3.0
  6. 通过JS检测360浏览器
  7. kettle 使用JAVA代码进行执行
  8. mpu
  9. KindEditor的内容以Word的形式导出
  10. 总结4点对学习Linux有帮助的建议(纯干货)