當前位置:首頁 » 編程語言 » java的char類型

java的char類型

發布時間: 2022-07-31 06:40:24

❶ 關於java中的字元類型char

char表示的是字元,『23』表示的是一個字元串而不是一個字元,23是一個數字。

❷ Java的char類型包含哪些數據

java的char是2位元組,16bit,包含所有ascii字元,而且更多,api文檔里有描述

char的數據是通過 UnicodeData 文件中的信息定義的,該文件是 Unicode Consortium 維護的 Unicode Character Database 的一部分。此文件指定了各種屬性,其中包括每個已定義 Unicode 代碼點或字元范圍的名稱和常規類別。

此文件及其描述可從 Unicode Consortium 獲得,網址如下:

http://www.unicode.org

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中char 的用法

char在java中稱為「字元型」
佔2個位元組
字元常量是用單引號括起的一個字元
且字元常量在內存中存儲的是該字元在unicode字元集中的排序位置,即整數
eg:char
x='a'
內存x中存儲的是字元a在unicode字元集中的排序位置97
因此允許將上面的語句寫成char
x=97;

❹ 關於java的char類型。

char在java中稱為「字元型」 佔2個位元組
字元常量是用單引號括起的一個字元 且字元常量在內存中存儲的是該字元在Unicode字元集中的排序位置,即整數
eg:char x='a'
如果要使用中文,不能用char這種類型。

❺ java char的用法

這是java編譯器的一個缺陷,
你不能使用 Unicode的換行,斜杠等字元,至於為什麼,舉個例子:
public static void main(String[] args) {
if ( false == true ) { //these characters are magic: \u000a\u007d\u007b
System.out.println("false is true!");
}
}
你可以運行上面的方法,會輸出 false is true!
java在編譯時會先將Unicode字元進行 呈現(或翻譯),然後再進行編譯 ,上面的方法會變成

public static void main(String[] args) {
if ( false == true ) { //these characters are magic:
}{
System.out.println("false is true!");
}
}

再來看你的代碼
char a='\U000d';

會變成:
char a='
';

這樣就會產生語法錯誤。
這就是原因了

下面的代碼是可以通過編譯的
char c=' ';\u000d;
可以這樣理解,代碼中的 Unicode並不能理解為單純的 字元或字元串,他們本身就是你的代碼
如:
System.out.println("Unicode print ");
這一行代碼你可以寫成
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0022\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0020\u0070\u0072\u0069\u006e\u0074\u0020\u0022\u0029\u003b\u0020
其實都是一樣的,只是書寫和查看都很不方便 。
建議不要在代碼中書寫Unicode形式的字元,很容易產生奇怪的錯誤,而且不方便查看和修改

❻ Java的char類型真的可以存漢字么

可以的
首先,java中的一個char的確是2個位元組。java採用unicode,2個位元組來表示一個字元。
一個數字或英文或漢字都是一個字元,只不過數字和英文時,存儲的2個位元組的第一個位元組都為0,就是浪費了點空間。存漢字就占滿了2個位元組。

❼ java char是什麼數據類型

char類型是按整型存放的,存放的是它的ASCII碼值,ASCII是8位的,從0-128(十進制)
\144 是指ASCII值(8進制)是144 對應的是『a』
\rn也不對,用\表示轉移字元的時候是一個\後面跟一個字元比如\r 或者\n分別表示回車和換行。
後面兩個格式也不對。

補充問題: 既然字元變數是按整型存放的,那麼它的計算就是整數的計算,a1+a2 就是a1的ASCII值+2得到的就是'c'的ASCII值,所以會輸出'c',答案就是b

❽ java中char類型是怎麼進行比較的

char類型時,當是單個字元時時是可以用「==」比較的,但是當為字元串時則不可以,應用比較函數strcmp進行比較,strcmp函數在頭文件"string.h"中,所以要用這個函數時前面還要包含這個頭文件。
延展回答:
char是C/C++整型數據中比較古怪的一個,其它的如int/long/short等不指定signed/unsigned時都默認是signed,但char在標准中是unsigned,編譯器可以實現為帶符號的,也可以實現為不帶符號的,有些編譯器如pSOS的編譯器,還可以通過編譯開關來指定它是有符號數還是無符號數。
在MYSQL中,欄位類型char是指:使用指定長度的固定長度表示的字元串;在excel中char函數用於返回對應發於數字代碼的字元。其用法:=char(number)其中,參數number為轉換的字元代碼,介於0~255之間,char佔一個位元組,也就是8個二進制位,但它表示的是有符號的類型,所以表示的范圍是-128~127;uchar表示無符號的類型,所以表示的范圍是0~255。
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。

熱點內容
少兒編程排行 發布:2025-01-24 04:40:46 瀏覽:697
搭建伺服器怎麼使用 發布:2025-01-24 04:19:34 瀏覽:443
平行進口霸道哪些配置有用 發布:2025-01-24 04:19:32 瀏覽:873
ngram演算法 發布:2025-01-24 04:03:16 瀏覽:658
迷宮游戲c語言 發布:2025-01-24 03:59:09 瀏覽:357
榮耀30pro存儲類型 發布:2025-01-24 03:54:02 瀏覽:556
客戶端文件上傳 發布:2025-01-24 03:48:44 瀏覽:257
推特更改密碼的用戶名是什麼 發布:2025-01-24 03:45:55 瀏覽:596
cc編譯選項 發布:2025-01-24 03:45:18 瀏覽:511
銀行密碼怎麼被鎖 發布:2025-01-24 03:37:02 瀏覽:431