JAVA数据类型中的char类型

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变量后,输出字符编码表中对应的字符。

原文地址:https://www.cnblogs.com/ntyvictory/p/10645069.html

时间: 2024-10-13 14:14:22

JAVA数据类型中的char类型的相关文章

字符集与编码--Java string.length 与 char 类型

这篇博客用于记录学习字符编码过程中得到的结论,不做过多的理论讲述. 参考资料:字符集与编码(五) 1. char 类型 在Java中,char类型存放一个用UTF-16编码代码单元(16位)表示的字符,用于表示单个字符,通常用来表示字符常量.例如:'A'是编码为65所对应的字符常量. 与"A"不同,"A"是一个包含字符A的字符串.Unicode代码点可以表示为十六进制值,其范围从\u0000到\uFFFF.例如:\u2122表示注册符号,\u03C0表示希腊字母π.

【C#学习路途之一】数据类型中的值类型

刚刚学习了C#的数据类型中的值类型,在C#中,数据类型分为三中,一种是值类型,另一种是引用类型,最后一种不常用,是指针类型,这个在C语言中经常使用,到现在我都没搞明白! 整数类型: 数据类型 含义 取值范围 sbyte 有符号8位整数 -128到127 byte 无符号8位整数 0到255 short 有符号16位整数 -32768到32767 ushort 无符号16位整数 0到65535 int常用 有符号32位整数 2三十一次方 到 2三十一次方-1 uint 无符号32位整数 0到429

Java数据类型中String、Integer、int相互间的转换

1.Integer转换成int的方法 Integer i;  int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Integer it = new Integer(i); 3.String转换成int的方法 String str = "10";   Integer it = new Interger(str); int i = it.intValue(); 即:int i = Integer.intValu

JAVA中的char类型

1.JAVA中,char占2字节,16位. 2.char赋值 char a='a';  //任意单个字符,加单引号. char a='中';//任意单个中文字,加单引号. char a=111;//整数.0~65535.十进制.八进制.十六进制均可.

JDBC数据类型、Java数据类型、标准sql类型

本文转自:http://www.cnblogs.com/shishm/archive/2012/01/30/2332142.html 谢谢原作者细心的总结,很赞! 本概述是从<JDBCTM Database Access from JavaTM: A Tutorial and Annotated Reference>这本书中摘引来的.JavaSoft 目前正在准备这本书.这本书是一本教程,同时也是 JDBC 的重要参考手册,它将作为 Java 系列的组成部份,在 1997 年春季由 Addis

java重载中的基本类型的自动类型转换

当传递到函数的参数的数据类型表示的范围小于函数形参的参数类型遵循如下原则 : char类型比较特殊, 直接转换为int:  char ->int ->long->float->double 其他的基本数据类型都遵循这个规则: byte->short->int->long->float->double 如果是整型常量: int->long->float->double 浮点型常量: 比如0.5等没有明确指出是何种类型的常量. 直接处理成

Puppet数据类型中哈希类型和布尔类型(十五)

哈希类型 puppet语言支持hash类型.它与数组类似,都是带索引的对象集合,与数组的区别在于作为索引步进限于数字,可以是任何对象.在puppet中哈希类型的"键"必须是字符串类型,但其"值"可以是任意的类型. 格式如下: {key1 => "value",key2 => "vale",...} 示例如下: [[email protected] ~]# cat 4.pp  $myname = { name1 =&

【Java】 String和char[]类型间的相互转化

(1)String类型转char[] 类型,使用String类型的toCharArray()方法: (2)char[] 类型转String类型,使用String.valueOf()方法: public class Test { public static void main(String[] args) { // String转char[] String str = "Hello World!"; char[] cs = str.toCharArray(); for (char c :

java中的char类型所占空间

java中统一使用unicode编码,所以每个字符都是2个字节16位.unicode包括中文,所以对String类计算长度的时候,一个中文和一个英文都是一个长度.String voice = "好声音"; System.out.println(voice.length());输出的是3 但是在C语言中,一个英文占一个字节,一个中文占两个字节,所以使用strlen("好声音"),输出是6