【零基础 快速学Java】韩顺平 p52-59 基本数据类型转换(自动、强制)、与String类型的转换

课程
p52-59

基本数据类型转换

自动类型转换

在这里插入图片描述

public class temp{
    public static void main(String[] args){
        //演示自动类型转换
        int num = 'a';
        double num2 = 50;
        System.out.println(num);
        System.out.println(num2);
        }
    }

输出:

97
50.0

注意事项和细节

  1. 多种数据类型混合运算时,系统首先自动将所有数据类型转换为容量最大的那种数据类型,再计算。
  2. 容量大的数据类型赋值给容量小的会报错(精度丢失),小赋值给大的可以(自动类型转换)。
  3. (byte,short)和char之间不会相互自动转换。
  4. byte,short,char之间可以计算,计算时首先转换为int。
  5. boolean不参与转换。
  6. 表达式结果中的类型自动提升为操作数最大的类型。

(byte,short)和char之间不会相互自动转换
(上图都不在一个赛道上)
如:

byte a = 1;//可以 是把1赋值给数据类型为byte的a
int b = 2;
byte c = b;//不可以 这是在把数据类型为int的b赋值给数据类型为byte的c
//尽管数值是可以放得下的

强制类型转换

是自动类型转换的逆过程,讲容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),可能会造成精度降低或溢出。

没有括号就会报错

int num = (int) 1.1;
System.out.println(num);

输出:

1//精度降低
int num = (byte) 129;
System.out.println(num);

输出:

-127//溢出

细节说明
在这里插入图片描述
即:

  1. 大变小才是
  2. 强转符号只对最近的操作数有效
  3. char可以保存int范围内的数字,但不能保存int类型的变量。
  4. byte和short运算时当作int处理

对于第三条:

char c1 = 100;
int num = 100;
char c2 = num;
System.out.println(c1);
System.out.println(c2);

c1可以赋值为100;
num已经声明为int类型,不能赋值给c2;
在这里插入图片描述

基本数据类型和String类型的转换

基本数据类型转字符串
语法:讲基本数据类型+""即可

String类型转基本数据类型
语法:通过基本类型的包装类调用parseXX方法即可。

如:
在这里插入图片描述
举个例子:


public class temp{
    public static void main(String[] args){

        //基本数据类型--->String
        int num = 123;
        String numm = num + "";
        System.out.println(numm);

        //String--->基本数据类型
        //使用 基本数据类型对应的包装类 的 相应方法 得到 基本数据类型
        String s = "1234";
        String ss = "11";
        int s1 = Integer.parseInt(s);
        double s2 = Double.parseDouble(s);
        float s3 = Float.parseFloat(s);
        long s4 = Long.parseLong(s);
        byte s5 = Byte.parseByte(ss);
        boolean b = Boolean.parseBoolean("true");
        short s6 = Short.parseShort(s);

        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);
        System.out.println(s5);
        System.out.println(s6);
        System.out.println(b);

        }
    }

输出:

123
1234
1234.0
1234.0
1234
11
1234
true

关于如何将字符串转为char:得到String的第一个字符
用charAt(x)来得到第x位(从0开始)

public class temp{
    public static void main(String[] args){
        //用charAt(x)来得到第x位(从0开始)
        String s = "123";
        char ch = s.charAt(0);
        System.out.println(ch);
        ch=s.charAt(1);
        System.out.println(ch);
        ch=s.charAt(2);
        System.out.println(ch);
        }
    }

输出:

1
2
3

注意事项
在将String类型转换为 基本数据类型 的时候,要确保它能转换成有效的数据。
如“123”可以转换为int的123,byte的123,long的123,但不会转换为“hello”(编译可以过,但运行会终止报错)。
基本数据类型转为String没有这种问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

karshey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值