在這篇文中紀錄如何擷取中英混雜的子字串。
以下是我想到的作法,就是利用big5中文兩字元、英文一字元的特性去做。
20220217,使用Linq重構部分程式碼。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| using System; using System.Text; using System.Linq;
namespace SubEnglishChineseString { public static class Program { static void Main(string[] args) { string str = "TESTWORD測試文字TEST"; Console.WriteLine(SubBig5String(str, 1, 15)); } public static string SubBig5String(string str, int start, int length) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); byte[] subByteArray = Encoding.GetEncoding("big5").GetBytes(str).Skip(start).Take(length).ToArray(); return Encoding.GetEncoding("big5").GetString(subByteArray); } } }
|
專案存庫:https://github.com/yuhsiang237/csharp-notes/tree/master/SubEnglishChineseString