java 定义char_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變量后,輸出字符編碼表中對應的字符。
總結
以上是生活随笔為你收集整理的java 定义char_JAVA数据类型中的char类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数值积分求解卫星轨道长(Python)
- 下一篇: 亿阳信通:不可表示的数