按照字元和位元組擷取內容的區別

2022-06-25 03:36:11 字數 490 閱讀 8008

最近在專案中擷取指定位元組位置和位元組長度的字串時遇到的坑,在這裡總結一下:

string s="測試內容";

一、兩個方法的區別

s.length()   獲取字元長度

s.getbytes().length  獲取作業系統預設編碼位元組長度

獲取指定編碼的位元組長度,不同的編碼位元組長度不一樣

s.getbytes("gbk").length 

s.getbytes("utf-8").length 

二、擷取指定位置和長度的字串

1、通常用到最多的就是,按照字元起始位置和結束位置來擷取指定字串

s.substring(beginindex, endindex)

2、如果是按照位元組的起始位置和指定位元組長度來擷取的話,就按照下面的方法,這裡要指定編碼格式

byte b = s.getbytes("gbk");

new string(b,offset,length,"gbk");

JAVA 按照位元組擷取字串

題目 編寫乙個按照位元組來擷取字串的函式,功能類似於string的substring 方法,string類是按照字元擷取的,例如 中國abc substring 1,3 就是返回 國a 這裡要求按照位元組,乙個英文和數字是乙個位元組,乙個漢字是兩個位元組,索引包括前面,不包括後面。getbytes ...

字元和位元組的區別

字元和位元組的區別 位元組 byte 位元組是通過網路傳輸資訊 或在硬碟或記憶體中儲存資訊 的單位。位元組是計算機資訊技術用於計量儲存容量和傳輸容量的一種計量單位,1個位元組等於8位二進位制。乙個英文本母 不分大小寫 佔乙個位元組的空間,乙個中文漢字佔兩個位元組的空間 符號 英文標點佔乙個位元組,中...

位元組和字元的區別

來自 位元組是計算機儲存資訊的基本單位。字元是指計算機中使用的數字和符號,包括 1 2 3 a b c 等等。1個漢字字元儲存需要2個位元組,1個英文本元儲存需要1個位元組。比如1234.9及 及abcd.z這種ascii字元,以及 我是中國人 這種gb2312字元或者unicode字元 字元的大小...