Kev*_*vin 11 .net c# string.format
我有一个压缩的字符串值,我从导入文件中提取.我需要将其格式化为包裹编号,格式如下:##-##-##-###-###.因此,字符串"410151000640"应变为"41-01-51-000-640".我可以使用以下代码执行此操作:
String.Format("{0:##-##-##-###-###}", Convert.ToInt64("410151000640"));
Run Code Online (Sandbox Code Playgroud)
但是,字符串可能不是所有数字; 它可能有一两个字母,因此转换为int将失败.有没有办法在字符串上执行此操作,以便每个字符(无论是数字还是字母)都能正确地符合格式?
Yur*_*ich 27
Regex.Replace("410151000640", @"^(.{2})(.{2})(.{2})(.{3})(.{3})$", "$1-$2-$3-$4-$5");
Run Code Online (Sandbox Code Playgroud)
或稍短的版本
Regex.Replace("410151000640", @"^(..)(..)(..)(...)(...)$", "$1-$2-$3-$4-$5");
Run Code Online (Sandbox Code Playgroud)
Jam*_*iec 10
我会通过拥有自己的格式化方法来解决这个问题,只要您知道"地块编号"始终符合特定规则即可.
public static string FormatParcelNumber(string input)
{
if(input.length != 12)
throw new FormatException("Invalid parcel number. Must be 12 characters");
return String.Format("{0}-{1}-{2}-{3}-{4}",
input.Substring(0,2),
input.Substring(2,2),
input.Substring(4,2),
input.Substring(6,3),
input.Substring(9,3));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17971 次 |
| 最近记录: |