day15 Java StringBuffer类 习题


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




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() 方法,仍然取的堆内存地址

猜你喜欢

转载自blog.csdn.net/qq_41464008/article/details/120682577