我们在java基础学习中经常会遇到一些基本类型数据之间的相互转换,今天我在这里记录一下int-String-StringBuffer三种类型之间的相互转换的常见的集中方式.
一.首先呢先介绍int->String类型转换的三种方式:
方式1:采用拼接空串的方式直接将int型数据转换成String类型
int a = 100 ;
String s1 = a + "";
System.out.println("s1:"+s1);//100
方式2:先将int->Integer->String
int b = 200;
Integer i = new Integer(b);//这里先将int型转换成Integer类型
String s2 = i.toString();//调用toString方法将Integer类型数转换成String
System.out.println("s2:"+s2);//200
方式3: public static String toString(int i)返回一个表示指定整数的 String 对象。
int c = 300;
String s3 = Integer.toString(c);
System.out.println("s3:"+s3);//300
二.接下来我们介绍两种常用的String->int的转换方式
方式1: String->Integer->int
注意利用Integer转换的字符串必须是纯数字类型的字符串否则就会报错
String s6 = "300yangkai";//字符串中包含字母的情况
Integer in2 = new Integer(s6);
System.out.println(in2);
**异常**
Exception in thread "main" java.lang.NumberFormatException: For input string: "300yangkai"
String s4 = "400";
Integer integer = new Integer(s4);//先将String类型先转换为Integer类型
int num1 = integer.intValue();//然后调用intValue()方法将Integer类型转换为Int类型
System.out.println("num1:"+num1);//400
方式2: Integer中有一个ParseInt(s)返回int型
String s5 = "500";
int num2 = Integer.parseInt(s5);
System.out.println("num2:"+num2);//500
三.最后我们介绍两种常用的String->StringBuffer的转换方式
//首先考虑String->StringBuffer的转换
//值得注意的是:我们不能直接将String类型的对象直接赋给StringBuffer类型
//String s1 = "hello";
//StringBuffer sb = s1;
//StringBuffer sb = "hello"; 这两种方式都是错误的
那我们应该怎样实现String->StringBuffer之间的相互转换呢???
String->StringBuffer:
方法1. 采用有参构造,通过StringBuffer()的有参构造将String类型的字符串作为参数传入
String s1 = "qiangsen";
StringBuffer sb1 = new StringBuffer(s1);
System.out.println("sb1:"+sb1);//sb1:qiangsen
方法2.采用无参构造方法,利用StringBuffer 对象的sppend()方法将String拼接在后面实现转换.
String s1 = "qiangsen" ;
StringBuffer sb2 = new StringBuffer();
sb2.append(s1);
System.out.println("sb2:"+sb2);//sb2:qiangsen
StringBuffer->String
方法1.
StringBuffer sb3 = new StringBuffer("qiangsen");//先生成一个Buffer对象
String s4 = sb3.toString();//接着调用toString()方法将buffer类型转换成String类型
方法2.
StringBuffer sb3 = new StringBuffer("qiangsen");
String s2 = new String(sb3);//直接利用String的有参构造将buffer类型直接转换成为String类型