day15 Java StringBuffer类 习题

本文介绍了Java中String与StringBuffer的相互转换方法,包括构造器和append()方法的使用。此外,还展示了如何使用StringBuffer拼接数组、反转字符串以及判断回文字符串的两种方式。示例代码详细展示了整个过程,对于理解和应用这些概念非常有帮助。
摘要由CSDN通过智能技术生成


肯定的微笑
准备,往前出发




1. String 和 StringBuffer 的相互转换

/*
    String 转换至 StringBuffer
    方式一
    	  通过构造方法
    方式二
    	  通过 append()	到空字符缓冲区  
    StringBuffer 转换至 String
        方式一
    	  通过构造方法
    方式二
    	  通过 toString() 转换  
 */
 		//	String 转换至 StringBuffer
		String s = "fgh";
		
        StringBuffer s1 = new StringBuffer(s);
        StringBuffer s2 = new StringBuffer().append(s);
        
        System.out.println(s1);
        System.out.println(s2);
        
		//	StringBuffer 转换至 String
        StringBuffer sb = new StringBuffer("韭菜盒子");
        
        String sb1 = new String(sb);
        String sb2 = sb.toString();
        
        System.out.println(sb1);
        System.out.println(sb2);

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

/*
    需求:把数组拼接成一个字符串(用StringBuffer实现)
		利用 append()
 */
        char[] c = {'a','b','c','d'};

        StringBuffer sb = new StringBuffer();

        for (char element:c) {
            sb.append(element);
        }

        System.out.println(sb);

3. 把字符串反转,键盘录入字符串

/*
        需求:把字符串反转,键盘录入字符串
 */
  import java.util.Scanner;
  
        Scanner sc = new Scanner(System.in);
        String s = sc.next();

        StringBuffer sb = new StringBuffer(s);

        String s1 = sb.reverse().toString();

        System.out.println(s1);

4. 判断回文

/*
		回文:字符串正序和逆序后,内容相同,成为回文
 */
 import java.util.Scanner;
 		
 		Scanner sc = new Scanner(System.in);
        String s = sc.next();
		
		//方式一
        char c[] = s.toCharArray();
        int head = 0;
        int tail = c.length - 1;
        boolean flag = true;

        for(; head <= tail; head++,tail--){

            if(c[head] != c[tail]){
                System.out.println("不是回文");
                flag = false;
                break;
            }

        }
        if(flag)
        System.out.println("是回文");

		//方式二
		StringBuffer sb = new StringBuffer();
        String s1 = sb.append(s).reverse().toString();
        //String 和 StringBuffer 不能做equals()比较
        //StringBuffer 没有重写 equals() 方法
        if(s.equals(s1)){
            System.out.println("是回文");
        }else{
            System.out.println("不是回文");
        }

    }

此处 flag 用于判断在循环被 break 时,是否触发输出最后一个 sout
对于此处的单方法,一可将 break 改为 return ,从而舍弃 flag 判断

String 和 StringBuffer 不能做equals()比较
因为 StringBuffer 没有重写 equals() 方法,仍然取的堆内存地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值