定長擷取字串,不限制英文漢字

2021-10-01 12:12:19 字數 704 閱讀 5641

首先先說一下這篇記錄的原因:要將幾個字串拼接成乙個字串,每個字串定長,且長度不等,使用「|」隔開,超出長度的在下一行展示,但是要跟上一行的序列位置對接上,如:

這種情況有的可能包含漢字、英文、數字、字元等等,所以string.getbytes(「gbk」);統一一下各個字元所占用的位元組,如第三列,最後乙個位元組放不下乙個漢字,則使用空格代替。廢話不說,上碼:

list outdata =

newarraylist

(); string data =

"afdasfa212132啊發發達二等分舒服舒服發得分為-發(發多少)"

; int size =45;

byte[

] bytes ;

tryelse

else

else}}

}}else

else

} count++;}

if(bytes.length - num <= size)

system.out.

println

(outdata);}

catch

(unsupportedencodingexception e)

漢字占用兩個位元組,英文、數字等占用乙個位元組,擷取後在判斷一下最後乙個位元組是否為漢字,如果是漢字判斷是否是整個漢字,避免將乙個漢字擷取一半的情況,會亂碼。

擷取字串(包括漢字)

程式設計 編寫乙個擷取字串的函式,輸入為乙個字串和位元組數,輸出為按位元組擷取的字串。但是要保證漢字不被截半個,如 我 abc 4,應該截為 我 ab 輸入 我 abc 漢 def 6,應該輸出為 我 abc 而不是 我abc 漢的半個 public class splitstr 計算輸入字串的總位...

C 擷取字串中的漢字

1 constchar str test測試test while str else 2 參看下面的字串轉換函式。用getbytes encoding 返回字串的乙個byte陣列 當b 0 為 63時,應該是轉碼錯誤 a 不亂碼的漢字字串 1 encoding用gb2312時,每byte是負數 2 e...

擷取字串

static function blogsummary str,len 100 else out valtmp break tmp tmpstr outlen mb strlen valtmp,charset out val.rs 2 key right rs 2 key unset rs tags...