character 类的方法和数据是通过 unicodedata 文件中的信息定义的 char 数据类型(和 character 对象封装的值)基于原始的 unicode 规范
提供的方法和数据也是基于unicode规范来的
|
他将字符定义为固定宽度的 16 位实体,也就是只能表示一个代码单元
而unicode也可能是有两个代码单元组成
也就是一个代码单元可能完整的表示了一个代码点,也可能是一个代码点的一部分
|
除非你真的有必要对utf-16中的代码单元进行操作,
否则最好不要在程序中使用char类型的原因
原因很简单,一个char并不一定能够代表一个字符,可能只是一半字符
|
无符号二进制形式表示 char 值的位数 | public static final int size = 16; |
无符号二进制形式表示 char 值的字节数 | public static final int bytes = size / byte.size; |
表示基本类型 char 的 class 实例 | public static final class<character> type = (class<character>) class.getprimitiveclass("char"); |
常量值是 char 类型的最小值,即 '\u0000' | public static final char min_value = '\u0000'; |
常量值是 char 类型的最大值,即 '\uffff' | public static final char max_value = '\uffff' |
unicode代码点的最小值 | public static final int min_code_point = 0x000000; |
unicode代码点的最大值 | public static final int max_code_point = 0x10ffff; |
utf-16 编码中的 unicode 高代理项代码单元的最小值 | public static final char min_high_surrogate = '\ud800'; |
utf-16 编码中的 unicode 高代理项代码单元的最大值 | public static final char max_high_surrogate = '\udbff'; |
utf-16 编码中的 unicode 低代理项代码单元的最小值 | public static final char min_low_surrogate = '\udc00' |
utf-16 编码中的 unicode 低代理项代码单元的最大值 | public static final char max_low_surrogate = '\udfff' |
代理项的最小值 也就是高代理项的最小值 |
public static final char min_surrogate = min_high_surrogate; |
代理项的最大值 也就是低代理项的最大值 |
public static final char max_surrogate = max_low_surrogate; |
增补代码点的最小值 也就是除了0号平面的第一个值 |
public static final int min_supplementary_code_point = 0x010000 |
可用于与字符串相互转换的最大基数 | public static final int max_radix = 36; |
可用于与字符串相互转换的最小基数 | public static final int min_radix = 2 |
character(char) | 只有一种形式的构造方法 直接设置value的值 |
compare(char, char) | 看起来可能会有人觉得奇怪,怎么还能直接减法? 其实char不就是一个utf-16的代码单元么,他不就是一个十六进制数么 如下图所示,0x0058 - 0x002b 得到的值的十进制就是45 比较的也就是前后顺序了 |
compareto(character) | 实例方法 借助于静态方法 |
valueof系列一直都是将基本类型包装为对象类型,此处也是如此 character也是有缓存的 |
charvalue() | 直接返回基本类型数据 |
public
static int tochars(int codepoint, char[] dst, int dstindex) |
保存到指定的数组的指定位置 如果0号平面内 dst[dstindex] 中存储相同的值,并返回 1 如果辅助平面 dst[dstindex]高代理 dst[dstindex+1]低代理返回2 |
public
static char[] tochars(int codepoint) |
返回一个char数组保存指定代码点 |
public static int offsetbycodepoints(char[] a,
int start,
int count,
int index,
int
codepointoffset)
|
public static int offsetbycodepoints(charsequence seq,
int index,
int
codepointoffset)
|
public static int codepointat(char[] a, int index)
|
public static int codepointat(charsequence seq, int index)
|
public static int codepointat(char[] a, int index, int limit )
|
public static int codepointbefore(charsequence seq,int index)
|
public static int codepointbefore(char[] a, int index)
|
public static int codepointbefore(char[] a, int index, int start
)
|
tolowercase(char)
tolowercase(int)
|
touppercase(char)
touppercase(int)
|
totitlecase(char)
totitlecase(int)
|
public static char highsurrogate(int codepoint) | 返回代码点的高代理 如果不是辅助平面的字符,返回未知char |
public static char lowsurrogate(int codepoint) | 返回代码点的低代理 如果不是辅助平面的字符,返回未知char |
public static boolean issurrogate(char ch) | 是否代理部分 |
public static boolean issurrogatepair(char high, char low) | 是否是代理对 |
public static boolean ishighsurrogate(char ch) | 是否是高代理 |
public static boolean islowsurrogate(char ch) | 是否是低代理 |
public static boolean isvalidcodepoint(int codepoint) | 是否是合法的代码点 确定指定的代码点是否为从 0x0000 到 0x10ffff 范围之内的有效 unicode 代码点值 |
public static boolean isbmpcodepoint(int codepoint) | 是否位于0号平面,是的话就可以使用一个char表示了 |
public static boolean issupplementarycodepoint(int codepoint) | 是否位于辅助平面 辅助平面必然需要使用两个char |
public static int tocodepoint(char high,char low)
将指定的代理项对转换为其增补代码点值。该方法没有验证指定的代理项对
如有必要,调用者必须使用 issurrogatepair 验证它
就是高代理 低代理的合并
|
小写?
islowercase(char)
islowercase(int)
|
大写?
isuppercase(char)
isuppercase(int)
|
首字母大写?
istitlecase(char)
istitlecase(int)
|
数字?
isdigit(char)
isdigit(int)
|
被定义为 unicode 中的字符?
isdefined(char)
isdefined(int)
|
字母?
isletter(char)
isletter(int)
|
字母或数字?
isletterordigit(char)
isletterordigit(int)
|
是否能够作为 java 标识符中的首字符?
isjavaidentifierstart(char)
isjavaidentifierstart(int)
|
是否能够作为 java 标识符中的首字符以外的字符?
isjavaidentifierpart(char)
isjavaidentifierpart(int)
|
是否允许作为 unicode 标识符中的首字符?
isunicodeidentifierstart(char)
isunicodeidentifierstart(int)
|
是否允许作为 unicode 标识符中的首字符以外的字符?
isunicodeidentifierpart(char)
isunicodeidentifierpart(int)
|
是否是 java 标识符或 unicode 标识符中可忽略的一个字符?
isidentifierignorable(char)
isidentifierignorable(int)
|
空白字符?
isspacechar(char)
isspacechar(int)
|
java 标准是否为空白字符?
iswhitespace(char)
iswhitespace(int)
|
iso 控制字符?
isisocontrol(char)
isisocontrol(int)
|
字母? isalphabetic(int) |
中日越韩文字? isideographic(int) |
依据 unicode 规范是否对称? ismirrored(char)
ismirrored(int)
|
uppercase_letter lowercase_letter titlecase_letter modifier_letter other_letter letter_number
|
uppercase_letter lowercase_letter titlecase_letter modifier_letter other_letter
|
返回使用指定基数的 字符 ch/unicode 代码点 的数值 |
public static int digit(char ch, int radix)
public static int digit(int codepoint, int radix)
|
确定使用指定基数的特定数字的字符表示形式 | public static char fordigit(int digit, int radix) |
返回给定字符的 unicode 方向属性 |
public static byte getdirectionality(char ch)
public static byte getdirectionality(int codepoint)
|
返回指定的 unicode 字符/unicode 代码点 表示的int值 |
public static int getnumericvalue(char ch)
public static int getnumericvalue(int codepoint)
|
返回指定字符codepoint的unicode名称,如果代码点未被分配,则返回null | public static string getname(int codepoint) |
如对本文有疑问, 点击进行留言回复!!
利用python将Mysql信息以Excel文件并作为邮件附件发送
springmvc+mybaits+mysql上传表情Incorrect string value: ‘\xF0\x9F\xA4\xB4\xF0\x9F...‘ for
SpringCloud Greenwich集成Seata1.2.0详解说明(原创by ulwfcyvi)
mybatis generator生成代码库 与指定的库不一致 为其他库的同名表
网友评论