Java 中 String 与 int 的互相转化知多少?

前言

本文注重于介绍 String 与 int 的互相转化。

int 转化为 String

第一种方法:直接加空字符串

我们直接在 int 类型的数据后面添加空字符串,便可将其转为 String 类型的数据。代码如下:

public class Test {

	public static void main(String[] args){
		int num = 100;
		String str = num + "";
		System.out.println("str:" + str);
	}
	
}

结果如下:
在这里插入图片描述

第二种方法:String.valueOf(num)

我们直接调用 String.valueOf() 函数便可以将 int 转化为 String,代码如下:

public class Test {

	public static void main(String[] args){
		int num = 100;
		String str = String.valueOf(num);
		System.out.println("str:" + str);
	}
	
}

结果如下:
在这里插入图片描述
我们来看一下 String.valueOf() 的源码,可以发现,其基础为 Object#toString(),且我们不需要担心 obj 为空的问题,当 obj 为空时,该方法会返回 “null” 而不是 null。

public static String valueOf(Object obj){return (obj==null)?"null":obj.toString();}

第三种方法:Integer.toString(num)

使用该方法可以将 int 转化为 String,代码如下:

public class Test {

	public static void main(String[] args){
		int num = 111;
		String str = Integer.toString(num);
		System.out.println("str:" + str);
	}
	
}

调用该方法的基础是 Object#toString(),另外我们需要确保 obj 不为 null,否则会抛出 NullPointerException 异常。obj 为 null 的例子如下:

public class Test {

	public static void main(String[] args){
		Integer num = null;
		String str = Integer.toString(num);
		System.out.println("str:" + str);
	}
	
}

结果如下,可以发现确实抛出了空指针异常。
在这里插入图片描述

效率对比

使用第二或第三种方法效率要比第一种方法高。

String 转化为 int

第一种方法:Integer.parseInt(str)

调用 Integer.parseInt() 方法可以将 String 转化为 int,代码如下:

public class Test {

	public static void main(String[] args){
		String str = "1314520";
		int num = Integer.parseInt(str);
		System.out.println("数字大小为:" + num);
	}
	
}

结果如下:
在这里插入图片描述
如果 String 为 null,调用 Integer.parseInt(str) 方法会抛出异常。测试代码如下:

public class Test {

	public static void main(String[] args){
		String str = null;
		int num = Integer.parseInt(str);
		System.out.println("数字大小为:" + num);
	}
	
}

结果如下:
在这里插入图片描述
如果 String 不能转化为相应的数字,也会抛出相应的异常,代码如下:

public class Test {

	public static void main(String[] args){
		String str = "34rr";
		int num = Integer.parseInt(str);
		System.out.println("数字大小为:" + num);
	}
	
}

结果如下:
在这里插入图片描述

第二种方法:Integer.valueOf(str).intValue()

测试代码如下:

public class Test {

	public static void main(String[] args){
		String str = "34";
		int num = Integer.valueOf(str).intValue();
		System.out.println("数字大小为:" + num);
	}
	
}

结果如下:
在这里插入图片描述
经过测试,与 Integer.parseInt(str) 大体相同,如果字符串不能转化为相应的数字或者字符串为 null,会抛出相应的异常。

效率对比

两种方法在效率上大体相同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章