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

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

这就像在第4和第7位用短划线转换一个简单的字符串。 我对C#很陌生,那么最好的方法是什么?

查看String.Insert方法。

 string formattedSSN = unformattedSSN.Insert(5, "-").Insert(3, "-"); 

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

 String.Format("{0:000-00-0000}", 123456789) 

123456789代表您的SSN变量。

 string ssn = "123456789"; string formattedSSN = string.Join("-", ssn.Substring(0,3), ssn.Substring(4,2), ssn.Substring(6,4)); 

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

没有数据validation,假设你只得到9个字符串,我会选择这样的东西 –

 return s.Substring(0, 3) + "-" + s.Substring(3, 2) + "-" + s.Substring(5, 4); 

但是……我也很新……所以GendoIkari的答案太好了。

当字符串不固定长度时,上面的答案可能会引发exception。

在我的情况下,我使用以下方式SSN格式化及其工作。

 string SSN = "56245789"; if (SSN.Length > 3 && SSN <= 5) SSN = SSN.Insert(3, "-"); else if (SSN.Length > 5) SSN = SSN.Insert(5, "-").Insert(3, "-"); 

因此SSN将获得562-45-789。