擷取位元組陣列形式的字串,串中包含中文

2022-07-17 04:33:11 字數 442 閱讀 5755

1、首先說一下各種字元的位元組組成:

字元、字母和數字:由乙個大於0的數字碼組成,比如1--49、a--65、b--98。即這三種型別長度為1位元組。

漢字:由兩個小於0的數字碼組成,比如 「我」-- (-50,-46)、「們」--(-61,-57)。即中文長度為2位元組。

2、解釋一下題幹

輸入是乙個包含中文的字串str,和乙個擷取長度i,要求把str擷取i個字元長度輸出,但是如果末尾是半個中文,就捨棄掉。因為除了漢字以外的其他都是1位元組長度,所以本題難度是處理中文的問題。

public void a(string str, int i)else

輸出:

哈哈1ab我

主函式中要求擷取輸出10位元組,那麼「哈哈1ab我」的位元組長度為 2+2+1+1+1+2 = 9,而後邊是乙個漢字,也就是第10位元組只是半個漢字,所以捨棄掉。

按位元組數擷取字串

1.字串設定長度,長度限制 nsstring stringwithhtml nsstring str length cgfloat length 如果有寬度限制的話,建議用 if str.length length 缺點是字母或數字或中文與數字字母混合時計算有誤,還會執行下面方法,但比較保險 獲取字...

根據位元組數擷取字串

擷取字串相信大家基本都用過,但是一般都是用string.length判斷字串的長度後進行擷取。這樣如果一組字串裡既有英文 數字又有中文,那麼擷取出來的字串還是會長短不一,因為每個英文或數字是佔乙個位元組而每個漢字佔兩個位元組。這時,我們可以通過位元組數來擷取,寫了個方法 擷取指定長度的字串 擷取前的...

根據位元組數擷取字串

問題描述 編寫乙個擷取字串的函式,輸入為乙個字串和位元組數,輸出為按位元組擷取的字串。但是要保證漢字不被截半個,例如 人abc 4,應該截為 人ab 輸入 人abc們 6,應該截為 人abc 而不是截為 人ab 們的半個 package com.wyl 擷取字串 author wyl public ...