[英]How many characters are in Java
Java中存在多少個唯一字符? 我已經循環到超過10,000,並且仍然找到了角色:
for (int i = 0; i < 10000; i++)
System.out.println((char) i);
有Integer.MAX字符嗎? 我一直認為出於某種原因只有255
Java使用Unicode。 Unicode代碼點從U + 0000到U + 10FFFF,這相當多。
但並非所有這些都是定義的。 如果您想知道其中有多少是“受支持的”,您可以使用:
final long nrChars = IntStream.rangeClosed(0, 0x10ffff)
.mapToObj(Character.UnicodeBlock::of)
.filter(Objects::nonNull)
.count();
另請注意,由於歷史原因,Java的char
只能直接代表U + FFFF的代碼點。 對於“休息”(現在幾乎是定義的代碼點的大部分),Java使用代理對。 請參見Character.toChars()
。
Java旨在使用內部Unicode,因此可以將多種腳本組合在一個String中。 Unicode是進入3字節范圍的所有腳本的編號。 這種Unicode“代碼點”在java中表示為int
。
那時char
和String
用於文本,char使用UTF-16(使用16位的Unicode表示,有時使用兩個字符表示Unicode代碼點。)但是.class文件中的字符串常量是UTF-8。
char
因此需要2個字節。 byte
占用1個字節, byte[]
用於二進制數據。
在早期的語言(C,C ++)中, char
和byte
之間通常沒有這種區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.