将XXXXXXXXX的社会安全号码(SSN)格式化为XXX-XX-XXXX

Ash*_*osh 13 .net c# string-formatting

我从数据仓库获取社会安全号码(SSN).在将其发布到CRM时,我希望将其格式化为XXX-XX-XXXX而不是XXXXXXXXX.

这就像将一个简单的字符串在位置破折号47.我对C#很陌生,那么最好的方法是什么?

Geo*_*ton 51

对于简单,简短和自我评论的解决方案,请尝试:

String.Format("{0:000-00-0000}", 123456789) 
Run Code Online (Sandbox Code Playgroud)

123456789 代表你的SSN变量.

  • 您假设数据是以数字形式出现的.我不确定SSN数据通常是如何保留的,但是如果前三个字符的规范包括前导零,我本来期望一个9个字符的字符串而不是数字值.如果是前者那么你需要添加一个字符串 - >数字转换(或者是否有一个隐含的转换?). (5认同)
  • 关闭,但您需要"{0:000-00-0000}"而不是"#"以允许前导零(或"{0:00# - ## - ####}"等). (3认同)
  • 是的,这失败了 - 问题指定SSN值是一个字符串,这个解决方案不适用于字符串. (2认同)

Gen*_*ari 44

查看String.Insert方法.

string formattedSSN = unformattedSSN.Insert(5, "-").Insert(3, "-");
Run Code Online (Sandbox Code Playgroud)

  • 当SSN存储为字符串时,George的解决方案失败,该字符串在问题中指定. (2认同)

wag*_*ghe 6

string ssn = "123456789";

string formattedSSN = string.Join("-", 
                                  ssn.Substring(0,3), 
                                  ssn.Substring(3,2), 
                                  ssn.Substring(5,4));
Run Code Online (Sandbox Code Playgroud)

如果 SSN 存储为数字而不是字符串,@George 的选项可能会更清晰。

开始索引已更正。