Java(1),Java架构师之路

|

三、ASCII可显示字符


二进制十进制十六进制图形
0010 00003220(空格)(␠)
0010 00013321!
0010 00103422"
0010 00113523#
0010 01003624$
0010 01013725 %
0010 01103826&
0010 01113927'
0010 10004028(
0010 10014129)
0010 1010422A*
0010 1011432B+
0010 1100442C,
0010 1101452D-
0010 1110462E.
0010 1111472F/
0011 000048300
0011 000149311
0011 001050322
0011 001151333
0011 010052344
0011 010153355
0011 011054366
0011 011155377
0011 100056388
0011 100157399
0011 1010583A:
0011 1011593B;
0011 1100603C<
0011 1101613D=
0011 1110623E>
0011 1111633F?
 
二进制十进制十六进制图形
0100 00006440@
0100 00016541A
0100 00106642B
0100 00116743C
0100 01006844D
0100 01016945E
0100 01107046F
0100 01117147G
0100 10007248H
0100 10017349I
0100 1010744AJ
0100 1011754BK
0100 1100764CL
0100 1101774DM
0100 1110784EN
0100 1111794FO
0101 00008050P
0101 00018151Q
0101 00108252R
0101 00118353S
0101 01008454T
0101 01018555U
0101 01108656V
0101 01118757W
0101 10008858X
0101 10018959Y
0101 1010905AZ
0101 1011915B[
0101 1100925C\
0101 1101935D]
0101 1110945E^
0101 1111955F_
 
二进制十进制十六进制图形
0110 00009660`
0110 00019761a
0110 00109862b
0110 00119963c
0110 010010064d
0110 010110165e
0110 011010266f
0110 011110367g
0110 100010468h
0110 100110569i
0110 10101066Aj
0110 10111076Bk
0110 11001086Cl
0110 11011096Dm
0110 11101106En
0110 11111116Fo
0111 000011270p
0111 000111371q
0111 001011472r
0111 001111573s
0111 010011674t
0111 010111775u
0111 011011876v
0111 011111977w
0111 100012078x
0111 100112179y
0111 10101227Az
0111 10111237B{
0111 11001247C|
0111 11011257D}
0111 11101267E~

四、代码实例


1、char、int互相转化


/**

 * char类型变量可以强制转化为int类型变量,反之亦然

 */

private static void test01() {

	char a = 'a';

	int b = 98;

	System.out.println((int)a);//97

	System.out.println((char)b);//b

	char c = 'b';

	System.out.println("98 == b --> "+ (b == c));//true

}



private static void test02() {

	char a = 'a';

	int[] arr = new int[100];

	for(int i = 0;i<100;i++) {

		arr[i] = i;

	}

	System.out.println(arr[1]);//1

	System.out.println(arr[99]);//99

	System.out.println((int)a);//97

	System.out.println("char自动转为int:"+arr[a]);//97

}

2、 判断是否是数字或字母


**

 * 判断是否是数字或字母

 */

private static void test03() {

	//数字

	System.out.println("Character.isDigit('1') -->"+Character.isDigit('1'));//true

	System.out.println("Character.isDigit('a') -->"+Character.isDigit('a'));//false

	//空格

	System.out.println("Character.isSpaceChar('1') -->"+Character.isSpaceChar('1'));//false

	Character.isSpaceChar('a');

	System.out.println("Character.isSpaceChar('a') -->"+Character.isSpaceChar('a'));//false

	Character.isSpaceChar(' ');

	System.out.println("Character.isSpaceChar(' ') -->"+Character.isSpaceChar(' '));//true

	//字母

	System.out.println("Character.isLetter('1') -->"+Character.isLetter('1'));//false

	System.out.println("Character.isLetter('a') -->"+Character.isLetter('a'));//true

	System.out.println("Character.isLetter('张') -->"+Character.isLetter('张'));//true, 汉字算字母?

	//数字或字母

	System.out.println("Character.isLetterOrDigit('1') -->"+Character.isLetterOrDigit('1'));//true

	System.out.println("Character.isLetterOrDigit('a') -->"+Character.isLetterOrDigit('a'));//true

	System.out.println("Character.isLetterOrDigit('张') -->"+Character.isLetterOrDigit('张'));//true, 汉字算字母?

	System.out.println("Character.isLetterOrDigit(' ') -->"+Character.isLetterOrDigit(' '));//false

}

3、获取字符串中某个位置上的字符


/**

 * codePointAt:获取字符串中某个位置上的字符

 */

private static void test06() {

	//获取字符串中某个位置上的字符

	int codePointAt = Character.codePointAt("abcdef", 1);

	System.out.println("Character.codePointAt(\"abcdef\", 1) -->" + codePointAt);//98

	codePointAt = Character.codePointAt("123456789", 1);

	System.out.println("Character.codePointAt(\"123456789\", 1) -->" + codePointAt);//50

	CharSequence seq = "/ 123456789";//这个是图形?

	codePointAt = Character.codePointAt(seq, 0);

	System.out.println(codePointAt);//预计是47? --> 47

	codePointAt = Character.codePointAt(seq, 1);

	System.out.println(codePointAt);//预计是32? --> 还真是32

	

	//CharSequence是一个接口,String、StringBuffer、StringBuilder类都是CharSequence的子接口;

	CharSequence seq1 = "*123456";//这个是图形?

	codePointAt = Character.codePointAt(seq1, 0);

	System.out.println(codePointAt);//预计是42? --> 42

	

	String seq2 = "*123456";//这个是图形?

	codePointAt = Character.codePointAt(seq2, 0);

	System.out.println(codePointAt);//预计是42? --> 42

	System.out.println("*******");

	char[] cArr = { 'a', 'b', 'c' };

	System.out.println(Character.codePointAt(cArr, 1)); //98

	// 获取指定位置字符的代码点。第二个参数的值一定要小于第三个参数,否则异常 

	System.out.println(Character.codePointAt(cArr, 0, 1)); //97 why?第三个参数有何用???

	System.out.println(Character.codePointAt(cArr, 0, 2)); //97 why?

	System.out.println(Character.codePointAt(cArr, 0, 3)); //97 why?

	System.out.println(Character.codePointAt(cArr, 1, 2)); //98 why?

	System.out.println(Character.codePointAt(cArr, 1, 3)); //98 why?

} 

看codePointAt源码,第三个参数limit貌似只起到了限定作用,第二个参数的值一定要小于第三个参数,否则异常,那岂不是大于第二个参数的都一样了???


public static int codePointAt(char[] a, int index, int limit) {

	if (index >= limit || limit < 0 || limit > a.length) {

		throw new IndexOutOfBoundsException();

	}

	return codePointAtImpl(a, index, limit);

}



// throws ArrayIndexOutOfBoundsException if index out of bounds

static int codePointAtImpl(char[] a, int index, int limit) {

	char c1 = a[index];

	if (isHighSurrogate(c1) && ++index < limit) {

		char c2 = a[index];

		if (isLowSurrogate(c2)) {

			return toCodePoint(c1, c2);

		}

	}

	return c1;

}

4、判断是否为大小写字母


/**

 * isLowerCase:判断是否为小写字母

 */

private static void test07() {

	// 将一个代码点转化为字符 

	System.out.println(Character.toChars(24352));//张

	// 判断是否为小写字母

	System.out.println(Character.isLowerCase('1'));//false

	System.out.println(Character.isLowerCase('a'));//true

	System.out.println(Character.isLowerCase('A'));//false

	System.out.println(Character.isLowerCase(' '));//false

	System.out.println(Character.isLowerCase('张'));//false

	System.out.println("*********");

	// 通过codepoint来判断是否为小写字母 

	System.out.println("isLowerCase: " + Character.isLowerCase(65)); //A --> false

	System.out.println("isLowerCase: " + Character.isLowerCase(42)); //* --> false

	System.out.println("isLowerCase: " + Character.isLowerCase(112)); //p --> true

	// 判断是否为大写字母

	System.out.println(Character.isUpperCase('1'));//false

	System.out.println(Character.isUpperCase('a'));//false

	System.out.println(Character.isUpperCase('A'));//true

	System.out.println(Character.isUpperCase(' '));//false

	System.out.println(Character.isUpperCase('张'));//false

}

5、UDC:通用十进制分类法


/**

 * isLowSurrogate:该函数返回一个布尔值。如果char值介于MIN_LOW_SURROGATE和MAX_LOW_SURROGATE(含)之间,则返回的值为True,否则为False。

 * UDC:通用十进制分类法

 * UDC分类号中文版:https://wenku.baidu.com/view/a2b50d15866fb84ae45c8dc6.html

 */

private static void test08() {

	char minLowSurrogate = Character.MIN_LOW_SURROGATE;

	System.out.println(Character.MIN_LOW_SURROGATE);//输出? --> 为何会输出?


# 写在最后

可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。

![复习一周,字节跳动三场技术面+HR面,不小心拿了offer](https://img-blog.csdnimg.cn/img_convert/fd610dc582cb0776aec32a67e581c54d.png)

![复习一周,字节跳动三场技术面+HR面,不小心拿了offer](https://img-blog.csdnimg.cn/img_convert/224f17d8693fbfca86a3a493c176013e.png)

> 上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源我都在这里公开分享出来

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。

[外链图片转存中...(img-RWOOeqlj-1630375029524)]

[外链图片转存中...(img-FEW8qPM9-1630375029525)]

> 上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源我都在这里公开分享出来

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值