重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
java的char是2字節,16bit,包含所有ascii字符,而且更多,api文檔里有描述
成都創新互聯公司從2013年成立,是專業互聯網技術服務公司,擁有項目成都做網站、網站制作、成都外貿網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元海南州做網站,已為上家服務,為海南州各地企業和個人服務,聯系電話:028-86922220
char的數據是通過 UnicodeData 文件中的信息定義的,該文件是 Unicode Consortium 維護的 Unicode Character Database 的一部分。此文件指定了各種屬性,其中包括每個已定義 Unicode 代碼點或字符范圍的名稱和常規類別。
此文件及其描述可從 Unicode Consortium 獲得,網址如下:
Unicode 字符表示形式
char 數據類型(和 Character 對象封裝的值)基于原始的 Unicode 規范,將字符定義為固定寬度的 16 位實體。Unicode 標準曾做過修改,以允許那些其表示形式需要超過 16 位的字符。合法代碼點 的范圍現在是從 U+0000 到 U+10FFFF,即通常所說的 Unicode 標量值。(請參閱 Unicode 標準中 U+n 表示法的定義。)
從 U+0000 到 U+FFFF 的字符集有時也稱為 Basic Multilingual Plane (BMP)。代碼點大于 U+FFFF 的字符稱為增補字符。Java 2 平臺在 char 數組以及 String 和 StringBuffer 類中使用 UTF-16 表示形式。在這種表現形式中,增補字符表示為一對 char 值,第一個值取自高代理項 范圍,即 (\uD800-\uDBFF),第二個值取自低代理項 范圍,即 (\uDC00-\uDFFF)。
所以,char 值表示 Basic Multilingual Plane (BMP) 代碼點,其中包括代理項代碼點,或 UTF-16 編碼的代碼單元。int 值表示所有 Unicode 代碼點,包括增補代碼點。int 的 21 個低位(最低有效位)用于表示 Unicode 代碼點,并且 11 個高位(最高有效位)必須為零。除非另有指定,否則與增補字符和代理項 char 值有關的行為如下:
只接受一個 char 值的方法無法支持增補字符。它們將代理項字符范圍內的 char 值視為未定義字符。例如,Character.isLetter('\uD840') 返回 false,即使是特定值,如果在字符串的后面跟著任何低代理項值,那么它將表示一個字母。
接受一個 int 值的方法支持所有 Unicode 字符,其中包括增補字符。例如,Character.isLetter(0x2F81A) 返回 true,因為代碼點值表示一個字母(一個 CJK 象形文字)。
在 Java SE API 文檔中,Unicode 代碼點 用于范圍在 U+0000 與 U+10FFFF 之間的字符值,而 Unicode 代碼點 用于作為 UTF-16 編碼的代碼單元的 16 位 char 值。有關 Unicode 技術的詳細信息,請參閱 Unicode Glossary。
java將int類型的數字轉換成char型,主要是通過強制類型轉換,如下代碼:
public class Int2CharDemo { public static void main(String[] args) { ?// 將int類型數字8轉換為char類型數字8
int num1 = 8;
char ch1 = (char) (num1 + 48);
System.out.println("ch1 = " + ch1); ?// 將char類型數字8轉換為int類型數字8
// 方法一:
Character ch2 = '8'; // char是基本數據類型,Character是其包裝類型。
int num2 = Integer.parseInt(ch2.toString());
System.out.println("num2 = " + num2);
// 方法二:
char ch3 = '8';
int num3 = ch3 - 48;
System.out.println("num3 = " + num3); }
擴展資料:
當編輯并運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟件(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類。
C語言中如int、long、short等不指定signed或unsigned時都默認為signed,但char在標準中不指定為signed或unsigned,編譯器可以編譯為帶符號的,也可以編譯為不帶符號的。
Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。
Java還剔除了C++的操作符過載(overload)和多繼承特征,并且不使用主文件,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。
可以創建Scanner類來從鍵盤輸入一個字符,用String類型來接收,再使用String的charAt功能,具體步驟如下:
1、先創建一個Scanner對象,如:Scanner sc = new?Scanner(System.in);
2、然后再調用Scanner對象sc的next()方法獲取控制臺輸入,定義一個String類型的變量s來接收控制臺輸入的字符,如:String s = sc.next();
3、調取變量s的charAt(0)方法獲取第一個字符,如:char c = s.charAt(0);
擴展資料
字符型值有如下三種表示形式
1、直接通過單個字符來指定字符型值,例如‘A’、‘9’和‘0’等。
2、通過轉義字符表示特殊字符型值,例如‘\n’、‘\t’等。
3、直接使用Unicode值來表示字符型值,格式是‘\uXXXX’,其中XXXX代表一個十六進制的整數
字符型值也可以采用十六進制編碼方式來表示,范圍是‘\u0000’~‘\uFFFF’,一共可以表示65536個字符,其中前256個(‘\u0000’~‘\u00FF’)字符和ASCII碼中的字符完全重合。
由于計算機底層保存字符時,實際是保存該字符對應的編號,因此char類型的值也可直接作為整型值來使用,它相當于一個16位的無符號整數,表數范圍是0~65535。
如果把0~65535范圍內的一個int整數賦給char類型變量,系統會自動把這個int整數當成char類型來處理。
參考資料:百度百科-char數據類型