c# - 使用自定义格式字符串将字符串解析为 int/long

标签 c# .net parsing int custom-formatting

在 C#.Net 中,这里有一个简单示例,说明如何使用自定义格式字符串将数字格式化为字符串: (例子取自:http://www.csharp-examples.net/string-format-int/)

String.Format("{0:+### ### ### ###}", 447900123456); // "+447 900 123 456"
String.Format("{0:##-####-####}", 8958712551);       // "89-5871-2551"

有没有办法将这个格式化的字符串转换回长整型?有什么办法可以做到这一点:

long PhoneNumber = Int32.Parse("89-5871-2551", "{0:##-####-####}");

我看到 DateTime 有一个方法 ParseExact 可以很好地完成这项工作。但是我没有看到任何关于 int/long/decimal/double 的东西。

最佳答案

您可以用正则表达式排除所有非数字,剩下的就是一串可以解析的数字。

var myPhoneNumber = "89-5871-2551";
var strippedPhoneNumber = Regex.Replace(myPhoneNumber, @"[^\d]", "");
int intRepresentation;

if (Int32.TryParse(strippedPhoneNumber, out intRepresentation))
{
    // It was assigned, intRepresentation = 8958712551
    // now you can use intRepresentation.

} else {
    // It was not assigned, intRepresentation is still null.
}

关于c# - 使用自定义格式字符串将字符串解析为 int/long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9471057/

相关文章:

c# - 如何返回 Dictionary<int, object>?

c# - .NET2 DNS 拒绝超过 126 个字符的主机名,如 "too long"

objective-c - 如何在 Objective C 中解析字符串

json - SwiftyJSON 问题 Swift 2

java - 我如何引用在 ANTLR 中多次调用同一规则?

c# - LINQ 子表达式不接受变量值

c# - 将 VB 转换为 C#

c# - 使用 C# 6.0 中的功能时是否有任何性能提升?

c# - blittable 类型上的非 blittable 错误

c# - 获取登录用户 SID 而不是提升的用户