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、吐槽
还行,就是感觉最近可能有些困惑,上课也认真听了,但是下课就发现到处是问题,刚讲过的,转眼就糊涂了!
点赞