程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 中英文字符串截取方法

中英文字符串截取方法

編輯:C#入門知識

public static string Intercept(string input, int p)         {             Encoding encode = Encoding.GetEncoding("gb2312");             byte[] byteArr = encode.GetBytes(input);             if (byteArr.Length <= p) return input;
              int m = 0, n = 0;             foreach (byte b in byteArr)             {                 if (n >= p) break;                 if (b > 127) m++; //重要一步:對前p個字節中的值大於127的字符進行統計                 n++;             }             if (m % 2 != 0) n = p + 1; //如果非偶:則說明末尾為雙字節字符,截取位數加1
              return encode.GetString(byteArr, 0, n);         }
  Console.WriteLine(Intercept("ABC中國人", 7)); Console.WriteLine(Intercept("ABCD中國人", 7)); Console.WriteLine(Intercept("ABC中D國人", 7));
  測試代碼的結果: 
  ABC中國  ABCD中國  ABC中D國    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved