基本数据类型、日期与String的转换

参考资料:https://blog.csdn.net/tsgjcnyn/article/details/77999676


一、Java的基本数据类型

        Java的基本数据类型有八种,分为三类。分别是:字符型类型(char)、布尔类型(boolean)和数值类型。

        数值类型又分为整数类型:byte、short、int、long 和 浮点数类型:float、double


二、Java基本数据类型之间的转换

        Java语言中的数据类型转换有两种:自动类型转换和强制类型转换。

        顾名思义,自动类型转换,是指不需要书写代码,由系统自动完成的类型转换,又称隐式类型转换。

        转换规则:从存储范围小的类型到存储范围大的类型。

        具体规则:byte→short(char)→int→long→float→double

//示例代码
byte a = 1;
short b = a;
int c = a;

        在给b赋值的时候,JVM会首先把a的值转换成short类型再赋值给b,当然也可以跳跃,如c的赋值。

        值得注意的是:当整数类型特别是数值较大的整数类型转换为浮点数类型的时候,由于存储精度的不同,可能会存在数据精度的损失。

        强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。

        转换规则:从存储范围大的类型到存储范围小的类型

//转换语法
double d = 3.1415;
int i = (int) d;//3

        强制类型转换通常都会造成存储精度的损失,因此使用的时候需要十分谨慎。

//示例1
short s = 1;
s = s + 1;//报错
s += 1;//报错

        上例在运算是会自动提升表达式的类型为int,把int类型赋予short则会出现转换类型报错。


        同理,作用在int上的switch语句同样可以作用在byte上(向int类型隐式转换),而不可以作用在long上,switch在1.7版本后可以作用在string上。

        By the way,char类型变量用来储存的是Unicode编码的字符,Unicode字符集包含了汉字,但一些生僻字除外。

        

三、基本数据类型与String对象之间的转换

        在Java中字符串属于对象,Java提供String类来创建和操作字符串。String类具有不变性,一旦对象生成,它的值便无法改变。(详情可以了解博客中关于Java堆栈与常量池的文章)

        1、基本数据类型转String可以采用其包装类的toString()方法

//int => String  
int num = 123456789;
String str = Integer.toString(num);

        2、String转基本数据类型可以采用包装类的parse**()方法

//String => int  
String s = "123456789"; 
int n = Integer.parseInt(s); 

        3、两者相互之间的转换均可以使用对应的.valueOf()方法

//int => String  
int num = 123456789; 
String str = String.valueOf(num);
String s = "123456789"; 
long n = Long.valueOf(s).longValue(); 
Long n = Long.valueOf(s);
         转换过程需要注意捕捉异常。


四、String类型与java.util.Date之间的转换

        String和Date之间的转换借助SimpleDateFormat类。

String转Date:

private static void testStringToDate() {  
    String s = "2018-04-04";  
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
    Date date = null;  
    try {  
        date = format.parse(s);  
    } catch (ParseException e) {  
        System.out.println(e.getMessage());  
    }  
    System.out.println(date);  
} 
Date转String:
private static void testDateToString() {  
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    
    try {  
        String dateString = format.format(new Date());  
    } catch (ParseException e) {  
        System.out.println(e.getMessage());  
    }  
    System.out.println(dateString);  
}

附:日期和时间模式(注意大小写)

yyyy:年  
MM:月  
dd:日  
hh:1~12小时制(1-12)  
HH:24小时制(0-23)  
mm:分  
ss:秒  
S:毫秒  
E:星期几  
D:一年中的第几天  
F:一月中的第几个星期(会把这个月总共过的天数除以7)  
w:一年中的第几个星期  
W:一月中的第几星期(会根据实际情况来算)  
a:上下午标识  
k:和HH差不多,表示一天24小时制(1-24)。  
K:和hh差不多,表示一天12小时制(0-11)。  
z:表示时区  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值