Java字符需要注意的地方

Java字符需要注意的地方

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

一、Java字符

在java中编辑如下代码

		char a = 1;
        char b = '1';
        System.out.println(a);
        System.out.println(b);

得出结果

		
		1

可见Java中1和’1’是完全不同的东西,1指的是字符a对应的ASCII码值为1,'1’指的是字符b的字符即为1。

现在思考一个问题?我们有两个字符,字符a为’2’,字符b为’1’,那么他们相加结果为多少?

字符进行相加时

	char a = '2';
    char b = '1';
    int c = (a + b);
    System.out.println("c的int值:" + c);
    char d = (char) c;
    System.out.println("c的char值:" + d);

结果为

	c的int值:99
	c的char值:c

因为字符a对应的字符的ASCII码值为49,2对应的ASCII码值为50,因此和为99,而ASCII码值为99对应的字符是c,因此’1’+'2’结果为99,其对应的字符为c。

新的问题又来了,一道算法题,给两个数,让计算其结果,但注意给的两个数都是字符,要求计算这两个数之和,了、如题中给出字符’1’和字符’2’,计算结果应该为3,如何计算?

	char a = '2';
	char b = '1';
	int c = a -'0';
	int d = b - '0';
	System.out.println("c = " + c);
    System.out.println("d = " + d);
    int res = c + d;
    System.out.println("res = " + res);

结果为

	c = 2
	d = 1
	res = 3

分析:a为’2’,实际ASCII码值为50,b为’1’,实际ASCII码值为49,字符’0’的实际ASCII码值为48,那么’a’ - '0’即为2,‘b’ - '1’即为1,那么即可计算出1 + 2 = 3了,那如果要将3保存为字符各式返回呢?

	 int res = 3;
     System.out.println("res = " + res);
     char res1 = (char) res;
     char res2 = (char) (res + '0');
     System.out.println("res1 == " + res1);
     System.out.println("res2 == " + res2);

结果为

	res = 3
	res1 == 
	res2 == 3

因此我们可知,如果将一个int类型的3转成字符’3’,不能直接进行强制类型转换,而是应该加上字符’0’。

总结

其实Java字符所需要的注意的就两点:
1、1和’1’的区别。为一个字符变量赋值,如果赋值为1,代表该字符变量对应的ASCII码值为1,在ASCII码表中能找到该字符到底是什么,如果赋值为’1’,代表该字符变量所对应的字符即为’1’,其对应的ASCII码值也可在表中找到。
2、数字字符与数字的转换。即’1’与1的互相转换。刷题网站(大数加法)上可能也经常会出现计算数字字符串之和这一类型的题目,其中就蕴涵着数字字符与数字的转换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值