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

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础 快速学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没有这种问题

以上是关于零基础 快速学Java韩顺平 p52-59 基本数据类型转换(自动强制)与String类型的转换的主要内容,如果未能解决你的问题,请参考以下文章

零基础 快速学Java韩顺平 p35-51 变量数据类型(整型,浮点,字符,布尔)重要编码,API文档

零基础 快速学Java韩顺平 p20-26 快速掌握技术转义字符易犯错误注释代码规范

零基础 快速学Java韩顺平 p82-86 标识符的命名规则和规范关键字保留字键盘输入

零基础 快速学Java韩顺平 p62-80 运算符:算数关系逻辑赋值三元和优先级

零基础 快速学Java韩顺平 p104-147 流程控制:顺序分支循环跳转 控制语句 (ifforwhiledowhilebreakcontinuereturn)

零基础 快速学Java韩顺平 p87-101 四种进制及其相互转换二进制运算(原码补码反码)7种位运算符