Java-23.1 StringBuffer类练习
1、String和StringBuffer的相互转换
/* String和StringBuffer的相互转换 A--B,把A转化为B,为了是使用B的功能 B--A,再把B转化为A,可能是最终的结果是需要A类型,所以还得转化回来 */ public class StringBUfferText1 { public static void main(String[] args) { //String --> StringBuffer String s1 = "hello"; //错误写法 //StringBuffer sb = s1; //StringBuffer sb = "hello" //方式一 构造方法转换 StringBuffer sb = new StringBuffer(s1); System.out.println(sb);//hello //方式二 StringBuffer的appen()方法 StringBuffer sb1 = new StringBuffer(); sb1.append(s1); System.out.println(sb1);//hello //StringBuffer --> String StringBuffer sb2 = new StringBuffer("java"); //方式一 通过String的构造方法传参 String s2 = new String(sb2); System.out.println(s2);//java System.out.println(sb2);//java //方式二 截取功能转换 String s3 = sb2.substring(0, sb2.length()); System.out.println(s3);//java System.out.println(sb2);//java //方式三 通过StringBuffer类的toString方法转换 String s4 = sb2.toString(); System.out.println(s4);//java System.out.println(sb2);//java } }
2、把数组拼接成一个字符串(用StringBuffer实现)
public class StringBUfferText2 { public static void main(String[] args) { int[] c = {1,5,8,784,1}; StringBuffer sb = new StringBuffer(); for (int i =0;i<c.length;i++){ sb.append(c[i]).append(','); } String s = sb.toString(); System.out.println(s); } }
3.字符串反转,键盘录入字符串
import java.util.Scanner; /* 把字符串反转,键盘录入字符串 */ public class StringBUfferText3 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入想要反转的字符串"); String s = sc.next(); //方法一 使用StringBuffer类的reverse()方法转换 //将字符串转化StringBuffer类 StringBuffer sb = new StringBuffer(s); StringBuffer r = sb.reverse(); //将转化好后的StringBuffer类转化为String类 String s1 = r.toString(); System.out.println("反转前字符串" + s); System.out.println("反转后字符串" + s1); //链式编程,一步到位 System.out.println(new StringBuffer(s).reverse().toString()); //方式二 通过String倒序遍历转换 //将字符串转换为字符数组 char[] c = s.toCharArray(); //定义一个空字符串 String s3 = ""; for (int i = c.length - 1; i >= 0; i--) { s3 += c[i]; } System.out.println("反转后的字符串"+s3); } }
4.判断字符串是不是对称字符串
/* 判断一个字符串是否是对称字符串 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串 分析: 1、第一个字符与最后一个字符比较 2、第二个字符与倒数第二个字符比较 ... 比较的次数:长度/2 */ import java.util.Scanner; public class StringBufferText4 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入需要判断的字符串"); String s = sc.next(); //String类方法比较 //将字符串转换为字符数组 boolean flag = true; char[] chars = s.toCharArray(); for (int i=0,j=chars.length-1;i<=j;i++,j--) { if (chars[i] != chars[j]) { System.out.println("这不是对称字符串"); flag = false; break; } } if(flag){ System.out.println("该字符串是对称字符串"); } //StringBuffer类的反转方法 StringBuffer sb = new StringBuffer(s); String s1 = sb.reverse().toString(); if (s.equals(s1)){ System.out.println("该字符串是对称字符串"); }else{ System.out.println("该字符串不是对称字符串"); } } }