转换数字+字母字符串[关闭]

Posted

技术标签:

【中文标题】转换数字+字母字符串[关闭]【英文标题】:convert numeric + alphabetical string [closed] 【发布时间】:2014-01-13 09:14:10 【问题描述】:

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

Example of a string : 3e317188a00577

【问题讨论】:

结果是什么,为什么? 但是这个例子不是一个有效的longint 字符串是什么格式的?看起来像十六进制?如果是这样,那么已经有很多答案了:***.com/questions/1139957/… 你想从这个字符串中删除字母并将剩余的字符转换为数字吗? 仅供参考:数字+字母通常称为字母数字。 【参考方案1】:

也许您只想提取数字来创建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

【讨论】:

感谢大家的回复!感谢大家,我得到了一些启发。 Tim Schmelter 您的解决方案奏效了。再次感谢!【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

方法是:

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

【讨论】:

以上是关于转换数字+字母字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何获取罗马数字字符串并将其转换为base10数字? [关闭]

Haskell 函数将 Int 转换为 alpha numerotation [关闭]

检查字符串中的一个字符是数字还是字母[Python] [关闭]

C语言 字母转换成数字

java字符转换

使用希伯来字母将数字转换为字符串