方法一:將已有字串組織成新字串時填充
由於某乙個字段,包含有漢字和數字。而乙個漢字是兩位佔位符的大小,如果單從字串長度來看,乙個漢字的長度為1。假如按乙個包含漢字字串長度就等於佔位符大小(如果只包含字母和數字的字串這樣計算是對的)來計算的話,乙個漢字卻等於乙個佔位(顯然是錯誤的),這樣就會出現問題了,欄位就無法對齊了。因為對齊是以佔位大小為標準的。
比如:name欄位,string name="中國人123"; 那麼name.length=6。如果以 encoding.getencoding("gb2312").getbytes(name).length=9。假設name欄位規定大小為12,不足字串的可用空格來填充。填充name欄位的長度為12,這時就需要增加3個空格來充滿這個字段,而不是6個空格。
解決辦法:string name=name+new string(' ',12-encoding.getencoding("gb2312").getbytes(name).length);
方法二:擴充套件string.padleft和string.padright
private string padleftex(string str,int totalbytecount,char c) string w = str.padright(totalbytecount - dcount,c); return w; }
private string padrightex(string str,int totalbytecount,char c) string w = str.padright(totalbytecount - dcount,c); return w; }
C 中英文混合字串對齊
private static string padrightex string str,int totalbytecount string w str.padright totalbytecount dcount return w 這段 來自 的改進。採用utf 8 coding.getbyteco...
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...