c# – 格式化字母数字字符串
发布时间:2020-12-15 08:07:48 所属栏目:百科 来源:网络整理
导读:我有一个包含16个字母数字字符的字符串,例如F4194E7CC775F003.我想将其格式化为F419-4E7C-C775-F003. 我试过用 string.Format("{0:####-####-####-####}","F4194E7CC775F003"); 但这不起作用,因为它不是数值. 所以我想出了以下内容: public class DashForma
我有一个包含16个字母数字字符的字符串,例如F4194E7CC775F003.我想将其格式化为F419-4E7C-C775-F003.
我试过用 string.Format("{0:####-####-####-####}","F4194E7CC775F003"); 但这不起作用,因为它不是数值. 所以我想出了以下内容: public class DashFormatter : IFormatProvider,ICustomFormatter { public object GetFormat(Type formatType) { return this; } public string Format(string format,object arg,IFormatProvider formatProvider) { char[] chars = arg.ToString().ToCharArray(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < chars.Length; i++) { if (i > 0 && i % 4 == 0) { sb.Append('-'); } sb.Append(chars[i]); } return sb.ToString(); } } 并通过使用 string.Format(new DashFormatter(),"{0}","F4194E7CC775F003"); 我能够解决问题,但是我希望有更好/更简单的方法来解决它?也许一些LINQ魔术? 谢谢. 解决方法
没有Linq你可以在一行中完成:
StringBuilder splitMe = new StringBuilder("F4194E7CC775F003"); string joined = splitMe.Insert(12,"-").Insert(8,"-").Insert(4,"-").ToString(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |