转换数字+字母字符串[关闭]
Posted
技术标签:
【中文标题】转换数字+字母字符串[关闭]【英文标题】:convert numeric + alphabetical string [closed] 【发布时间】:2014-01-13 09:14:10 【问题描述】:如何将指数值转换为等效的 .Net 数据类型值。 有谁知道如何将数字 + 字母字符串转换为 long 或 int?
Example of a string : 3e317188a00577
【问题讨论】:
结果是什么,为什么? 但是这个例子不是一个有效的long
或int
。
字符串是什么格式的?看起来像十六进制?如果是这样,那么已经有很多答案了:***.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 [关闭]