【问题标题】:Convert string with leading zeros to a number [closed]将带有前导零的字符串转换为数字[关闭]
【发布时间】:2020-05-25 04:48:36
【问题描述】:

我遇到了一些挑战。我有一个包含 11 个字符的字符串,前 10 个表示数量,最后一个是字母或特殊字母,表示要添加的值。

例如,如果我得到了

0000000400A

这意味着

400 + 2

所以结果应该是

402

我不知道该怎么做。有什么想法吗?

【问题讨论】:

  • 控制为什么 A = 2 的规则是什么,最后一个字符的可能值是什么?
  • 对我来说看起来像 10 个字符。
  • 我刚刚更正了字符数。我得到了 A 到 D,它代表从 2 到 5 的值。
  • 您可以将您的问题简化为一组较小的问题:1) 从字符串中获取除最后一个之外的所有符号 2) 将其解析为整数 3) 获取字符串的最后一个符号 4)根据您的特殊要求将其转换为整数 5)将它们相加
  • int result = int.Parse(source.Substring(0, source.Length - 1)) + source[source.Length - 1] - 'A' + 2

标签: c# converters


【解决方案1】:

这样的?

// Setup
var dict = new Dictionary<char, int>();
dict.Add('A', 2);
dict.Add('B', 3);
dict.Add('C', 4);
dict.Add('D', 5);

var str = "0000000400A";

// This is what you need
var result = Convert.ToInt32(str.Substring(0, 10)) + dict[str[10]];

Console.WriteLine(result);

【讨论】:

  • 虽然这回答了问题,但如果作者没有付出任何努力并且没有尝试任何事情,您通常不应该回答这些问题。对其他人没有帮助,对作者也没有帮助。
  • 好的,我明白了,你是对的,对不起。
  • 我不知道为什么要投票。 'Convert.ToInt32(str.Substring(0, 10))' 抛出异常,因为它以零开头。
猜你喜欢
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
  • 2019-12-03
  • 1970-01-01
  • 2019-07-08
  • 2022-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多