零基础 快速学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
注意事项和细节
- 多种数据类型混合运算时,系统首先自动将所有数据类型转换为容量最大的那种数据类型,再计算。
- 容量大的数据类型赋值给容量小的会报错(精度丢失),小赋值给大的可以(自动类型转换)。
- (byte,short)和char之间不会相互自动转换。
- byte,short,char之间可以计算,计算时首先转换为int。
- boolean不参与转换。
- 表达式结果中的类型自动提升为操作数最大的类型。
(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//溢出
细节说明
即:
- 大变小才是
- 强转符号只对最近的操作数有效
- char可以保存int范围内的数字,但不能保存int类型的变量。
- 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)