题解 | #字符个数统计#
字符个数统计
https://www.nowcoder.com/practice/eb94f6a5b2ba49c6ac72d40b5ce95f50
2、位图BitSet判断存在性
import java.util.BitSet;
import java.util.Scanner;
// 1、in.next()和in.nextLine()之间的区别
// next(): 这个函数会扫描从有效字符起到空格,Tab,回车等结束字符之间的内容并作为String返回。
// nextLine(): ;这个函数会直接输出你输入的内容,即使你什么都没输入直接回车他也会输出。
// next() 什么都不输入直接敲回车不会返回,而nextLine()即使不输入东西直接敲回车也会返回.
// 2、BitSet是什么,包含内容是什么
// Java 中 BitSet 就是“位图”数据结构,根据“位图”的语义,数据的存在性可以使用 bit 位上的1或0来表示;一个 bit 具有2个值:0和1,正好可以用来表示 false 和 true。
//通过 BitSet 来检测一个数字是否存在
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
//0~127总共有128个字符。字需要用128位
BitSet bitSet = new BitSet(128);
for (char c : str.toCharArray()) {
if (!bitSet.get(c)) {
bitSet.set(c);
}
}
System.out.println(bitSet.cardinality());
// System.out.println(bitSet.size()); //128 实际大小
// System.out.println(bitSet.length()); //逻辑大小 BitSet中最高设置位的 BitSet加1 c--99 + 1 == 100
}
}
