首页 > 解决方案 > 根据分隔符符号格式化字符串

问题描述

我有一个这样的字符串

4366|2d53|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|3f80| 0|4248|295f|41c4|19c4|0|268

在这里,| - 表示为一个分隔符我想让每个分隔符正好包含 4 个字符

例如: 0|0 这必须简化为 0000|0000 12|13 这必须简化为 0012|0013

注意:如果 char. 附上| 小于 4 然后在字符前面添加零,即 12|13 简化为 0012|0013 不像这样 1200|1300

结果:

4366|2d53|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|3f80| 0|4248|295f|41c4|19c4|0|268

我想将其转换为

4366|2d53|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|0000|3f80| 0000|4248|295f|41c4|19c4|0000|2680

标签: c#

解决方案


这可以通过简单的字符串操作来解决Split()PadLeft()并且Join()

string input = "4366|2d53|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|3f80|0|4248|295f|41c4|19c4|0|268";
string result = string.Join("|",input.Split('|').Select(x => x.PadLeft(4, '0')));

推荐阅读