java字元串位元組
⑴ 請問java中字元串中英文占幾個位元組
java里
的char是佔2個位元組的
也就是一個說
英文和數字也都是佔2個位元組的
還有編碼是統一的
不可能想你說的
英文與數字字元屬於ASCII編碼,
故佔用一個位元組,
中文字元屬於GBK編碼,占兩個位元組
如果用ascii來解碼
那整個文件都是按照ascii來解碼的~
說到編碼的話
其實現在utf-8用的最多
⑵ (java)如何獲取字元串的位元組數!
字元串是可以轉變成位元組數組,然後統計一下位元組數組的長度即可,參考如下代碼:
Java語言中,中文字元所佔的位元組數取決於字元的編碼方式,一般情況下,採用ISO8859-1編碼方式時,一個中文字元與一個英文字元一樣只佔1個位元組;採用GB2312或GBK編碼方式時,一個中文字元佔2個位元組;而採用UTF-8編碼方式時,一個中文字元會佔3個位元組。
public static void main(String []args) throws UnsupportedEncodingException {
// 運行結果:2
System.out.println("測試".getBytes("ISO8859-1").length);
// 運行結果:4
System.out.println("測試".getBytes("GB2312").length);
// 運行結果:4
System.out.println("測試".getBytes("GBK").length);
// 運行結果:6
System.out.println("測試".getBytes("UTF-8").length);
}
⑶ Java中一個字元到底多少個位元組
字元 不等於 位元組。
字元(char)是 Java 中的一種基本數據類型,由 2 個位元組組成,范圍從 0 開始,到 2^16-1。
位元組是一種數據量的單位,一個位元組等於 8 位。所有的數據所佔空間都可以用位元組數來衡量。例如一個字元占 2 個位元組,一個 int 占 4 個位元組,一個 double 占 8 個位元組 等等。
⑷ java中String占幾個位元組
Java中無論是漢字還是英文字母都是用Unicode編碼來表示的,一個Unicode碼是16位,每位元組是8位,所以一個Unicode碼占兩位元組。但是英文字母比較特殊,源自於8位(1位元組)的ASCII嗎,於是在Unicode碼僅使用了低8位(1位元組)就可以表示,高8位的話不使用也無所謂。所以
char
c='a';
System.out.println(c.getBytes().lenth()),得到的是1(位元組)
但漢字就完整地使用了16位(2位元組)的Unicode,所以
char
c='中';
System.out.println(c.getBytes().lenth()),得到的是2(位元組)
綜上,c='a'在內存中確實只佔1位元組,但這不意味著String
s="abc"在內存中只佔3位元組。應該這么說,String
s="abc"至少在內存中佔3位元組。這是因為char是基本數據類型,而String確是對象類型。
⑸ java中一個字元是幾個位元組字元和位元組是同等的嗎
Java規定了字元的內碼要用UTF-16編碼,一個字元是2個位元組。外碼字元所佔位元組取決於具體編碼。字元和位元組是不一樣的。
外碼編碼不同,字元和位元組的換算不同,幾種常見的編碼換算如下:
ASCII編碼是單位元組編碼,只有英文字元,不能編碼漢字。
GBK編碼1個英文字元是1個位元組,一個漢字是是2個位元組。
UTF-8編碼1個英文字元是1個位元組,一個漢字是3個位元組。
Unicode編碼1個英文字元是2個位元組,一個漢字是2個位元組。
(5)java字元串位元組擴展閱讀:
漢字編碼的困難點 漢字進入計算機,有許多困難,其原因主要有三點:
①數量龐大:一般認為,漢字總數已超過6萬個(包括簡化字)。雖有研究者主張規定3000多或4000字作為當代通用漢字,但仍比處理由二三十個字母組成的拼音文字要困難得多。
②字形復雜:有古體今體,繁體簡體,正體異體;而且筆畫相差懸殊,少的一筆,多的達36筆,簡化後平均為9.8筆。
③存在大量一音多字和一字多音的現象:漢語音節416個,分聲調後為1295個(根據《現代漢語詞典》統計,輕聲39個未計)。以1萬個漢字計算,每個不帶調的音節平均超過24個漢字,每個帶調音節平均超過7.7個漢字。有的同音同調字多達66個。一字多音現象也很普遍。
⑹ Java 字元串轉化為位元組
string型轉byte 要怎麼轉 有兩種方式
getBytes()
使用平台默認的字元集將此 String 解碼為位元組序列,並將結果存儲到一個新的位元組數組中。返回byte[]
getBytes(String charsetName)
使用指定的字元集將此 String 解碼為位元組序列,並將結果存儲到一個新的位元組數組中。返回
byte[]
你那樣寫是可以的 不過 你需要保證你的機器8001這個埠開放才能正常運行 我給你寫了一個測試類
public class T {
public static void main(String[] args) throws IOException
{
Socket s = new Socket(InetAddress.getByName("127.0.0.1"),80);
System.out.println(s);
}
}
⑺ Java中文字元所佔的位元組數是多少
採用GB2312或GBK編碼方式時,一個中文字元佔2個位元組;而採用UTF-8編碼方式時,一個中文字元會佔3個位元組。
⑻ java中的字元串佔多少位元組
java里
的char是佔2個位元組的
也就是一個說
英文和數字也都是佔2個位元組的
中文字元屬於GBK編碼,占兩個位元組