刷leetcode时定义一个hashmap:
Map<char, Integer> map = new HashMap<char, Integer>();
不行,应该使用char的包装类Character
Map<Character, Integer> map = new HashMap<Character, Integer>();
Character是char的包装类,就像Integer和int ,以及Long和long一样。
Character是char的包装类,注意它是一个类,提供了很多方法的。
包装类和基本类型可以自动转换,这是jdk1.5(5.0)的新特性,叫做自动封箱和自动解封
即:
例1:
char ch=‘a’;
Character ch1=ch;//自动封箱
Character c=new Character(a);
char c1=c;//自动解封
例2:
int t=10;
Integer t1=t;//自动封箱
Integer t=new Integer(10);
int t1 = t //自动解封
Character类:
在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。 以确定字符的类别(小写字母,数字,等等)
构造方法:
public Character(char value)
构造一个新分配的 Character 对象,用以表示指定的 char 值
Character类的判断功能:
public static boolean isDigit(char ch)
确定指定字符是否为数字。
public static boolean isLetter(char ch)
确定指定字符是否为字母。
public static boolean isLowerCase(char ch)
确定是否是小写字母字符
public static boolean isUpperCase(char ch)
确定是否大写字母字符
两个转换功能:
public static int toLowerCase(char ch)
使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。
public static int toUpperCase(char ch)
使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为大写
参考自:https://blog.csdn.net/jiangxindu1/article/details/39584557
https://blog.csdn.net/scbiaosdo/article/details/80071667