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("该字符串不是对称字符串");
        }
    }
}

 

posted @ 2021-10-10 20:12  艺术派大星  阅读(99)  评论(0)    收藏  举报
levels of contents