转换数字+字母字符串

时间:2014-01-13 09:14:11

标签: c# asp.net-mvc

如何将指数值转换为等效的.Net数据类型值。 有谁知道如何将数字+字母字符串转换为long或int?

Example of a string : 3e317188a00577

4 个答案:

答案 0 :(得分:0)

也许您只想提取数字以创建long?您可以使用Char.IsDigit和LINQ:

Char[] digitsOnly = "3e317188a00577".Where(Char.IsDigit).ToArray();
if(digitsOnly.Length > 0)
{
    long result;
    if (long.TryParse(new string(digitsOnly), out result))
    {
        Console.Write("Successfully parsed to: " + result);
    }
}

结果:Successfully parsed to: 331718800577

如果您想要将其从十六进制解析为int / long:

long result = long.Parse("3e317188a00577", System.Globalization.NumberStyles.HexNumber);

结果:17505812249314679

答案 1 :(得分:0)

如果你只需要字符串中的数字,那么试试这个:

longValue = Long.parseLong("3e317188a00577".replaceAll("\\D+",""), 10);

答案 2 :(得分:0)

你给我们的字符串对我来说就像一个十六进制值。在这种情况下,您可以将其转换为int / long,如下所示:

string numberAsHex = "3e317188a00577";
long numberAsInt = long.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);

答案 3 :(得分:0)

这是一个类似的问题: Convert numbers with exponential notation from string to double or decimal

这样做的方法是:

String myString = "3e317188a00577";
Double myDouble = double.Parse(myString, CultureInfo.InvariantCulture);