Java 包装类、基本数据类型与字符串的相互转换

Java设计中一个核心的原则,即万物皆对象,也就是说一切要求用对象的形式描述,但是基本数据类型不是对象。 那么该如何解决此问题呢? 可以把基本数据类型包装成一个对象,以面向对象的思想去使用这些类型。 包装类有什么作用? 采用基本数据类型包装的形式描述,让功能变得更加健壮,例如: Integer默认不是int的 0 而是 null ,那么比起基本数据类型,包装类对象它就多了一个状态。

包装类列表:

基本类型包装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble

 

装箱与拆箱

装箱:将值类型装换成引用类型的过程。通过调用包装器类的 valueOf 方法实现。

拆箱:将引用类型转换成值类型的过程。通过调用包装器类的 xxxValue 方法实现,xxx代表对应的基本数据类型(int,short,long,double,byte,char,float,boolean)。

// 装箱
Integer i1 = new Integer(1);
Integer i2 = Integer.valueOf(2);
// 拆箱
int i3 = ir1.intValue(); 

自动拆装箱。

// 自动装箱
Integer i1 = 1;
// 自动拆箱
int i2 = i1; 

基本数据类型与字符串的相互转换

1.基本数据类型转换到字符串类型

① 使用包装类的 toString() 方法

int a = 20;
String s1 = Integer.toString(a);
double d = 20.2;
String s2 = Double.toString(d);

② 使用String类的 valueOf() 方法

int a = 20;
String s1 = String.valueOf(a);
double d = 20.2;
String s2 = String.valueOf(d);

③ 通过加一个空字符

int a = 20;
String s1 = a+"";
double d = 20.2;
String s2 = d+"";

2.字符串类型转换到基本数据类型

①调用包装类的 parseXxx 静态方法,xxx代表对应的基本数据类型(int,short,long,double,byte,char,float,boolean)。

String s1 = "20";
int a = Integer.parseInt(s1);
String s2 = "20.2";
double d = Double.parseDouble(s2);

 需注意字符串转成基本数据类型时字符串内容必须是基本数据类型的字面值,否则编译虽然能通过,但运行时出现NumberFormatException

例如:

public class Main {
  public static void main(String[] args) {
     String s1 = "20a";
     int a = Integer.parseInt(s1);
     System.out.println(a);
  }
}

 输出结果:

 

②调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

String s1 = "20";
int a = Integer.valueOf(s1);
String s2 = "20.2";
double d = Double.valueOf(s2);

③用字符串构造基本类型的封装对象,再调用封装对象的xxxValue方法

String s1 = "20";
Integer a = new Integer(s1);
int a2 = a.intValue();
String s2 = "20.2";
Double d = new Double(s2);
double d2 = d.doubleValue();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值