版权声明:本文出自孤星卟哭的博客,原创文章,转载请注明出处。 https://blog.csdn.net/zcy92949/article/details/79914973
前言
本人并不喜欢纯文字的笔记方式,一般都会代码中穿插自己的注解来学习某一个知识点,第一次接触字符串和基本数据类型转换是去年二月十五号,为什么记得这么清楚,是因为当初教我的老师总是说,记笔记一定要有一个自己的规范,无论多久,当你再次翻开笔记,自己一定要能看懂,因此当初的笔记多数都有日期作为基本标识,好了,扯远了,回归正题。
其实二者转换还是挺简单的,主要需要了解基本类型对应的包装类和String类的源码中的方法(至于什么是包装类,我在此只做一个简单的说明,包装类除了类型转换用到,还有一个常用的地方就是集合,如果想看集合请单击),因为结合源码学习进步是最快的,以下是我自己对于转换的一些代码笔记。
1、包装类及作用
- 定义:在Java中称任何东西都有对象。但是基本数据类型没有对象,作为弥补,由此产生包装类。
- 基本数据类型:byte、short、int、long、float、double、char、boolean;
包装类:Byte、Short、Integer、Long、Float、Double、Character、Boolean。 - 作用:
1.自动转换(小到大)
2.强制转换(大到小)
3.基本数据类型和引用数据类型的转换
2、字符串和基本数据类型相互转换的两种方法
public void getSummary() {
double dblNum = 1.113;
String str = "1113";
/*
* 字符串与基本数据类型转换每个都有两种方法,举例两个比较常用的,如下:
*/
/*
* 字符串转换成浮点型
*
*/
/*
* 第一个方法
*/
double str_dbl_1 = Double.parseDouble(str);
System.out.println("Double类中的parseDouble()方法:" + str_dbl_1);
/*
* 第二个方法
*/
Double str_dbl_2 = new Double(str);
double str_dbl_3 = str_dbl_2.doubleValue();
System.out.println("Double类中的构造方法:" + str_dbl_2);
System.out.println("Double类中的doubleValue()方法:" + str_dbl_3);
/*
* 浮点型转成字符串
*/
/*
* 第一个方法,有两种表示形式,因为String类型和Double类型中都有可用的方法
*/
String dbl_str_1 = String.valueOf(dblNum);
String dbl_str_2 = Double.toString(dblNum);
System.out.println("String类中的valueOf()方法:" + dbl_str_1);
System.out.println("Double类中的静态toString()方法:" + dbl_str_2);
/*
* 第二个方法(其实和第一个方法没什么区别,为什么都可以直接调用toString(),因为在Double类中toString是静态方法)
*/
Double dblnum_package = new Double(dblNum);
String dbl_str_3 = dblnum_package.toString();
System.out.println("Double类中的toString()方法:" + dbl_str_3);
}
3、基本数据类型之间相互转换
以下代码片分为两部分,前半部分列举了大部分常用的基本类型和字符串的相互转换,后半部分列举了八大基本类型的内存大小,以及之间的相互转换
public int intNumber;
public float fltNumber;
public double dblNumber;
public char chNumber;
public String strNumber = "97";
@SuppressWarnings("unused")
public void getSummary() {
//常用的基本类型与字符串相互转换
System.out.println();
char str_ch = (char)Integer.parseInt(strNumber); //注:Character类中没有parseInt()方法,所以这里进行强制转换就可以完成需求
String ch_str = String.valueOf(chNumber);
Integer str_int = Integer.parseInt(strNumber);
String int_str = String.valueOf(intNumber);
Float str_flt = Float.parseFloat(strNumber);
String flt_str = String.valueOf(fltNumber);
Double str_dbl = Double.parseDouble(strNumber);
String dbl_str = String.valueOf(dblNumber);
/**
* 八大基本数据类型大小展示(一字节等于八位:1byte=8bit):整数类型:byte:1byte;short:2byte;int:4byte;long:8byte
* 浮点型:float:4byte;double:8byte
* 字符型:char:2byte
* 布尔型:boolean:1byte
* 基本类型相互转换,分为强制转换和自动转换(根据取值范围大小分,如果左右一样大小,必须强制转换)
* 1:自动转换(隐式),从"小"——>"大"
* 2:强制转换,从"大"——>"小"
*/
//以下例子就是取值范围一样大(注:没有探讨到的是布尔型转换,因为用不到,翻看源码太费时间,就放弃了)
short number = 1;
char decimals = 'a';
decimals = (char) number;
number = (short) decimals;
}
4、总结
以上就是我对八大基本数据类型和字符串相互转换的理解,如有不对之处,希望诸君不吝赐教。
以上代码的文档在此链接中,有兴趣的可以下载
https://download.csdn.net/download/zcy92949/10343959