典型例题string类型

1、把数组拼接成一个字符串(用StringBuffer实现)

public class StringBufferTest1 {
    public static void main(String[] args) {
        char[] chars = {'a','b','c','d'};

        //创建一个空的StringBuffer对象
        StringBuffer sb = new StringBuffer();

        //遍历数组得到每一个字符
        for(int i=0;i<chars.length;i++){
            sb.append(chars[i]);
        }

        //将字符缓冲区转换一个字符串
        String s = sb.toString();
        System.out.println(s);


    }
}

2、把字符串反转 (键盘录入字符串) "qwerdf" --> "fdrewq"

import java.util.Scanner;

public class StringBufferTest2 {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String stringLine = sc.next();

        //方式1:使用String的拼接方式
        String s = "";
        //将字符串转换成字符数组
        char[] chars = stringLine.toCharArray();
        //倒着遍历字符数组
        for (int i = chars.length - 1; i >= 0; i--) {
            s += chars[i];
        }
        System.out.println(stringLine + "反转之后的结果为:" + s);

        System.out.println("========================================");
        //方式2:StringBuffer中有一个reverse()方法实现
        //将输入的String类型的数据转换成StringBuffer类型
        StringBuffer sb = new StringBuffer(stringLine);
        sb.reverse();
        //将StringBuffer类型转换回去String类型
        String s1 = sb.toString();
        System.out.println(stringLine + "反转之后的结果为:" + s1);

        System.out.println("=====================链式编程改进:=====================");
        System.out.println(new StringBuffer(stringLine).reverse().toString());

    }
}

 

判断一个字符串是否是对称字符串
    例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串

分析:
    1、第1个字符与最后一个字符去比较
    2、第2个字符与倒数第2个字符去比较
    3、第3个字符与倒数第3个字符去比较
    4、...
    比较的次数: length()/2
import java.util.Scanner;

public class StringBufferTest3 {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要判断的字符串:");
        String stringLine = sc.next();

        //方式1:一个一个的去比较
        //将输入的字符串转化成字符数组
        boolean flag = true;
        char[] chars = stringLine.toCharArray();
        for (int start = 0, end = chars.length - 1; start <= end; start++, end--) {
            if (chars[start] != chars[end]) {
                System.out.println("该字符串不是对称字符串");
                flag = false;
                break;
            }
        }
        if(flag){
            System.out.println("该字符串是对称字符串");
        }

        System.out.println("=========================================================");
        //方式2:利用StringBuffer中反转方法,如果反转之前与反转之后的字符串是一样的,说明是对称字符串
        //将输入的String类型的数据转化成StringBuffer类型的数据
        StringBuffer sb = new StringBuffer(stringLine);
        sb.reverse();
        //再将反转后的StringBuffer类型的数据转换成String类型的数据
        String s = sb.toString();

        if(s!=null){
            if(s.equals(stringLine)){
                System.out.println("该字符串是对称字符串");
            }else {
                System.out.println("该字符串不是对称字符串");
            }
        }



    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值