[英]How to get size in bits Java
如何以大端順序獲取64位(不是字節)的String大小? 我從未在Java中進行過此類操作。 謝謝你的幫助 : )。
我想你想要這個:
String source = "0123456789";
byte[] byteArray = source.getBytes("UTF-16BE");
int sizeInBits = byteArray.length * 8;
資料來源: 為什么byteArray的長度為22而不是20?
嗯 字符串只能以char或字節為單位進行度量,並且只有在為編碼指定了特定的字符集后才能進行度量。
對於后者,它只是string.getBytes(charset).length
。
如果我們知道您實際上要做什么,可能會有所幫助。
Java在內部始終使用BigEndian順序工作,即使x86之類的平台使用LittleEndian。
在Java中,64位值存儲在long
數據類型中。
現在最后一個問題是您要測量什么。 在字符串中,您可以計算字符數或使用指定編碼(例如,UTF-8,UTF-16,ISO-8859-1等)對字符串進行編碼時所占用的字節數。
假設您要計算字符串中的字符數,並希望將其作為64位數字獲取,則可以使用以下代碼:
String myString = "abcdefgh";
long charCount = myString.length;
如果要將charCount
寫入文件或網絡連接,則可以使用DataOutputStream獲取BigEndian表示形式:
DataOutputStream out = new DataOutputStream(streamToWriteTo);
out.writeLong(charCount);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.