簡體   English   中英

Java中有多少個字符

[英]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

那時charString用於文本,char使用UTF-16(使用16位的Unicode表示,有時使用兩個字符表示Unicode代碼點。)但是.class文件中的字符串常量是UTF-8。

char因此需要2個字節。 byte占用1個字節, byte[]用於二進制數據。

在早期的語言(C,C ++)中, charbyte之間通常沒有這種區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM