【问题标题】:How to split a number into individual nos如何将一个号码拆分为单独的号码
【发布时间】:2016-12-20 10:25:32
【问题描述】:

我有一个int number = 1782901998,它的长度是 10 个数字;我需要将它们分成 10 个不同的字符串。我尝试了以下代码,但它没有返回任何输出;我需要将每个数字分配给一个字符串。

string number = 7894;
char[] numberChars = number.ToString().ToCharArray();
int[] digits = new int[numberChars.length];

for(int i = 0; i < numberChars.length; i++) {

    digits[i] = (int)numberChars[i];

 }

此代码仅在数字列表中返回57

【问题讨论】:

  • 此代码使用字符“7”、“8”、“9”和“4”(55、56、57、52)的 ASCII 代码填充整数数组。 (顺便说一句,它甚至没有编译)
  • 请解释一下,你想要一个整数数组(就像你的代码现在所做的那样)还是想要一个字符串数组?
  • @Steve 不知道为什么要重新打开它。为什么你认为这不是this 的副本,它也是this 的副本。我的意思是在将其转换为 int OP 之后可以使用ToString() 函数将其转换为字符串......
  • 嗯,这可能是explained by Jeff hereBorderlLine Duplicate,我选择在这一点之后重新打开问题的多个微妙变体通常会带来好处周围,​​因为人们倾向于使用完全不同的词进行询问和搜索,而且我们的覆盖范围越广,我们的程序员伙伴找到他们正在寻找的答案的几率就越大 但是我同意这确实是边界

标签: c#


【解决方案1】:

因为您的代码使用 number 变量的字符的 ASCII 代码填充数组。您可以使用LINQ,如下所示:

int[] digits = number.Select(c => Convert.ToInt32(c.ToString())).ToArray();

或者如果你想简单地将每个数字分配给一个字符串:

string[] digits = number.Select(c => c.ToString()).ToArray();

【讨论】:

  • 我们也有double[] digits = number.Select(char.GetNumericValue).ToArray();int[] digits = number.Select(c =&gt; (int)char.GetNumericValue(c)).ToArray();
猜你喜欢
  • 1970-01-01
  • 2012-01-28
  • 2017-11-24
  • 2017-02-05
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
相关资源
最近更新 更多