DESKTOP-QT2JO23_20200831-孙中霞

1、问题

​ 字符串碎片的那个,刚开始是理解,就是想把它拆开,然后计数它的字符碎片种类,并分别一个一个进行比较,但是感觉写的时候写不出来,回去问了舍友,给我提了意见!

package com.itlaobing;

import java.util.Scanner;
public class Fragments {
    public static void main(String[] args) {    
        //用于提示输入
         System.out.println("请输入一个字符串:");
        Scanner sc = new Scanner(System.in);
        String a = sc.nextLine();
        
        // 统计种类数
        // 字符串长度为0的时候返回
        if (a.length() == 0) {
            return;
        } else {
            char[] str = a.toCharArray();//将字符串转换为字符数组
            char s = str[0];
            double count = 1;
            for (int i = 1; i < a.length(); i++) {
                if (str[i] != s) {
                    count++;
                    s = str[i];
                }
            }
            // 计算平均长度
            double avg = str.length / count;
            System.out.println(avg);

        }

    }
}

​ StringBuffer 在 new 一个对象并赋值后,它的System.identityHashCode方法的值是用来判断地址????还是???比较时 first 与 second 两个字符串之间具体比较的什么?还有在StringBuffer() 和 StringBuilder()缓冲区中两值的内容相等的时候为什么时false???还有在final修饰的时候又咋比较??最近的在变和不变之间搞得有些晕!!!

        StringBuffer first = new StringBuffer( "abc" );
        System.out.println( first + "【" + System.identityHashCode( first ) + "】" );
        
        StringBuffer second = new StringBuffer( "abc" );
        System.out.println( first + "【" + System.identityHashCode( second ) + "】" );
        
        System.out.println( first == second ); // false
        System.out.println( first.equals( second ) ); // false

2、解决

字符串碎片找了一下思路,然后写了一下,但是我写的语句在逻辑上有些混乱,后来请教同桌,把代码块整理了一下,才没那么乱!

3、吐槽

还行,就是感觉最近可能有些困惑,上课也认真听了,但是下课就发现到处是问题,刚讲过的,转眼就糊涂了!

标签


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1