题解 | #字符个数统计#
字符个数统计
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 } }