【问题标题】:Convert String variable to long [duplicate]将字符串变量转换为长 [重复]
【发布时间】:2015-12-03 03:55:56
【问题描述】:

我今天在写的时候遇到了一个非常愚蠢的问题: 在一个地方,我必须给出一个长值,比如 0x70、0x3BC0 或类似的东西。 我必须从文本文件中获取此值。 我正在使用这样的 System.IO:

string[] stringTakenByFile = File.ReadAllLines(@"thePathToFile.txt");

从这里我可以取值,但是是字符串格式。我的意思是与 0x70 相同的值,但不是 long 或 int,而是文本(字符串)。当我尝试解析它或将其从字符串转换为 int/long 时,它给了我一个异常,女巫说:输入字符串的格式不正确。 如果你能帮助我,那就太棒了! 谢谢! 编辑:我不想“如何在 C# 中转换十六进制和十进制之间的数字?”我需要从字符串到 LONG

【问题讨论】:

  • 你如何尝试转换它?
  • 字符串变量WhereIStoreTheStringResult;长变量WhereIwannaStoreTheResult = Convert.ToInt64(variableWhereIStoreTheStringResult); long variableWhereIwannaStoreTheResult = int64.Parse(variableWhereIStoreTheStringResult);
  • Convert.ToInt64("Your Hex String", 16); 应该是您正在寻找的东西。 16 这里是基数。
  • 试试这个代码 hexNumber = hexNumber.Replace("x", string.Empty);长结果 = 0; long.TryParse(hexNumber, System.Globalization.NumberStyles.HexNumber, null, out result);
  • @Std_Net ,您会像答案一样发布它吗?这很完美!

标签: c#


【解决方案1】:

更新:请参阅帖子 cmets 中的@Std_Net 答案以获取更新的解决方案

如果你想解析一个十六进制格式的 Long,你必须像这样指定它:

Long.parseLong(myStringToConvert, 16);

参见MSDN 文档

【讨论】:

  • C# 中的Long.parseLong 是什么?
  • @bviale,你确定语法吗?
  • 好的,你是对的,但@Std_Net 在这种情况下给出了最好的答案。无论如何感谢您的帮助。
  • 是的,而且我的方法不是最新的,我发现已经太晚了,它已经不在上一个框架中使用了
猜你喜欢
  • 2019-05-21
  • 2012-04-13
  • 2012-07-30
  • 2016-01-26
  • 2013-04-20
  • 1970-01-01
  • 2020-07-23
  • 2013-10-07
  • 2020-09-19
相关资源
最近更新 更多