本篇来学习如何在Stirng和StringBuffer之间互相转换,和利用StringBuffer方法重新做前面String类做过的面试编程练习题。
1.String对象转换为StringBuffer对象
要把String转换成StringBuffer有两种方法,一种是构造方法,第二种是append方法。
package stringbuffer;
publicclass Demo1_StringBuffer {
public static void main(String[] args) {
// 利用构造方法把String转换成StringBuffer
StringBuffer sb = new StringBuffer("Anthony");
System.out.println(sb);
StringBuffer sb2 = new StringBuffer();
sb2.append("Anthony");
System.out.println(sb2);
}
}
第二个方法是,先初始化一个空字符的StringBuffer对象,然后append方法方法空字符和要转换的字符串给拼接起来。
2.StringBuffer对象装换为String对象
StringBuffer要转换成String对象有三个方法,toString(),构造方法,和subString(0,length)
package stringbuffer;
public class Demo1_StringBuffer {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Anthony");
// 1.通过String类的构造方法转成String类对象
String str = new String(sb);
System.out.println(str);
// 2.通过 toString方法,在StringBuffer中重写了Object类的toString类
String str2 = sb.toString();
System.out.println(str2);
// 3.通过字符串截取方法
String str3 = sb.substring(0, sb.length());
System.out.println(str3);
}
}
练习1:将数组装换成字符串输出
题目:例如有一个Int数组arr={11,22,33},转换后输出格式为“[11,22,33]”。
这个题目我们在String类学习过程中写过,现在使用StringBuffer的方法来实现。
分析:
1).转换成字符串,所以方法返回值类型为String
2).转换对象是数组,方法的形式参数是数组 int[]
下面是具体代码实现
package stringbuffer;
public class Demo1_StringBuffer {
public static void main(String[] args) {
int[] arr = {11,22,33,44,55,66,77,88,99};
System.out.println(array2String(arr));
}
public static String array2String(int[] arr) {
StringBuffer sb = new StringBuffer();
// 1先把左中括号给拼接到缓冲区
sb.append("[");
// 2遍历数组
for(inti=0; i<= arr.length-1; i++){
if(i == arr.length-1) {
sb = sb.append(arr[i] + "]"); //注意最后一个元素拼接处理方式
}else {
sb = sb.append(arr[i] + ",");
}
}
return sb.toString();
}
}
输出结果:[11,22,33,44,55,66,77,88,99]
练习2:使用StringBuffer类进行字符串反转输出
分析:
1).使用Scanner,接收键盘录入字符串
2).方法返回值是字符串
3).方法参数为空
具体代码实现如下:
package stringbuffer;
import java.util.Scanner;
public class Demo1_StringBuffer {
public static void main(String[] args) {
System.out.println(myReverse());
}
public static String myReverse() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
sc.close();
StringBuffer sb = new StringBuffer(line);
sb.reverse();
return sb.toString();
}
}