C 中英文混合字串對齊

2021-09-29 09:18:53 字數 832 閱讀 4666

private static string padrightex(string str, int totalbytecount)

string w = str.padright(totalbytecount - dcount);

return w;

}

這段**來自

的改進。

採用utf-8

coding.getbytecount(ch.tostring())

算出來可能大於2,所以此處進行了改動。

原理:認為乙個中文佔2個單位螢幕長度,乙個英文佔1個單位螢幕長度。

str.padright(int totalwidth)

這個函式的totalwidth引數指的是在str字串右側填充完空格之後str總的應當占有的長度。

注意這個總的應當占有的長度是字元數,1個中文為1個字元,乙個英文為1個字元,所以假設str包含dcount個中文,b個英文,然後需要在str右側補充c個空格(空格螢幕寬度是1個單元).

那麼str字串右側補充c個空格之後:

totalwidth=dcount+b+c;

而str補充c個空格之後,實際占得螢幕寬度(也就是我們希望乙個字串佔的螢幕寬度totalbytecount )

totalbytecount =2*dcount+b+c;

因此,計算totalwidth:

totalwidth=totalbytecount -dcount=希望占得螢幕寬度-中文字元個數;

也就是下面這行**的原因:

string w = str.padright(totalbytecount - dcount);

C 字串中英文對齊

stringbuilder str new stringbuilder 樓盤名稱 總數 r n 綠地海外灘中心 new string 25 encoding.default.getbytes 綠 地海外灘中心 length 10 樓盤名稱 總數 r n 上海醫藥大廈 new string 25 en...

C 中英文混合字串擷取函式

一 截斷字串 最大長度 原字串 public static string cutstr int maxlength,string str for int i temp.length i 0 i return 二private string getbytestring string center,in...

Django 擷取中英文混合字串

在列表顯示的時候,我們常常要擷取文章標題的長度,python擷取字串,本來很簡單的,但是中文和英文的寬度不一樣,在頁面看起來長度就差很遠了 length7 這是中文長度七 粗略來算 是粗略哦 乙個中文字元的寬度大概等於兩個英文本元的寬度。乙個中文字元的utf8編碼長度為3,gbk為2 所以將使用gb...