JAVA数据类型中的char类型

Wesley13
• 阅读 873

1、JAVA中,char占2字节,16位。可在存放汉字

2、char赋值

char a='a'; //任意单个字符,加单引号。

char a='中';//任意单个中文字,加单引号。

char a=111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。

注:只能放单个字符。

3、char运算

char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。

在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待。

示例1:

char m='a';                               -->a

char m='a'+'b';                          -->?            //char类型相加,提升为int类型,输出对应的字符(a和b分别对应

                                                                           的数值为97和98,相加等于195,其对应的字符为 ?)。

int m='a'+'b';                             -->195        //195没有超出int范围,直接输出195。

char m=197;                             -->?            //输出字符编码表中对应的字符。

char m='197;                            -->报错       //因为有单引号,表示是字符,只允许放单个字符。

char m='a'+1;                           -->b             //提升为int,计算结果98对应的字符是b。

char m='中'+'国';                      -->42282

char m='中'+'国'+'国'+'国';          -->报错         //int转char有损失。因为结果已经超出char类型的范围。

int m='中'+'国'+'国'+'国';           -->86820

char m='中'+1;                         -->丮            //1是int,结果提升为int,输出对应的字符。

char m='中'+"国";                       -->报错         //String无法转换为char。

System.out.println('中'+"国");  -->中国         //没有变量附值的过程。String与任何字符用“+”相连,转换为String。

示例2:

char a = 97;                                 -->为char类型变量 a 赋值常量值 97。

char b = 'a'+3;                             -->d               // 97+3=100,ASCII对应的字符为 d。

char c = a+3;                               -->报错        //无法从int类型转换为char类型,接下来让我们了解下为什么会不

                                                                         能这样运算:

        首先,我们先知道在jvm内存机制中,char类型数据运算是将字符在ASCII表对应的整数以int类型参与运算(可以认为' a '=97),常量(97)与常量(3)运算得到一个新的常量(100),常量赋值给变量(b),不存在强制转换,只要这个接受变量(b)的类型范围大于这个常量即可。而变量声明时需要定义数据类型(例:char a),内存就为这个变量划分一个char类型大小的空间,其中变量(a)的值是可变的,而常量(3)的值是不变的,两个运算得到的还是一个变量,本例中(a+3)是int类型的变量,而int类型变量(a+3)赋值给char类型变量(c)需要强制转换,因此会报错。

char c=(char)(a+3);                   -->d    

总结:

用单引号' '标识,只能放单个字符。

char+char,char+int——类型均提升为int,附值char变量后,输出字符编码表中对应的字符。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
3年前
mysql 5.7 JSON 支持
1.首先要保证正确的字符集mysqlshowvariableslike'char%';|Variable_name|Value
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
Java基础之字符串
5.1字符字符指的用单引号括起来的单个字母。java中,char表示字符的数据类型。一个字符在内存中占16位大小的空间(2个字节)。5.2字符串字符串或串是由零个或多个字符组成的有限序列,它是编程语言表示文本的数据类型。串的两个最基本的存储方式是顺序存储方式和链接存储方式5.2.1字符串声明与赋值String是字符串变量的类型
Wesley13 Wesley13
3年前
oracle小数点前零丢失的问题
1.问题起源 oracle数据库字段值为小于1的小数时,使用char类型处理,会丢失小数点前面的0 例如0.35就变成了.35 2.解决办法:(1)用to\_char函数格式化数字显示 select    to\_char(0.338,'fm9999999990.00')fromdual; 结果:0.34 
小万哥 小万哥
10个月前
掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南
C变量变量是用于存储数据值的容器。在C中,有不同类型的变量(用不同的关键字定义),例如:int存储整数(没有小数点的整数),如123或123double存储浮点数,有小数点,如19.99或19.99char存储单个字符,如'a'或'B'。Char值用单引号
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这