如何在C#中将数字拆分为数字

时间:2017-06-03 16:58:01

标签: c#

我的号码是:241233 如何将这个数字拆分成单独的数字? 就像是: a = 2,b = 4,c = 1,d = 2,e = 3,f = 3 我可以用C#做​​这个吗? (VisualStudio 2013) PS:每次都会改变数字,但我知道它有6位数

4 个答案:

答案 0 :(得分:1)

var collection = yourNumber.ToString().Select(c => Int32.Parse(c.ToString()));
//or var collection = yourNumber.ToString().Select(Char.GetNumericValue);

foreach(var num in collection)
    Console.WriteLine(num);

答案 1 :(得分:1)

我会采用不同的方式,

没有必要将其分解为char数组。

您可以循环显示此数字的长度。 然后取数字和mod 10.

12345%10 = 1234,(给你最后一位数,5)。 1234%10 = 123,(给你4) 等等...

我认为它更优雅的解决方案,它应该比将其分解为char数组并将其转换为int等快一点,因此mod操作是原子操作,所以它比任何其他非原子操作更快。

答案 2 :(得分:0)

您可以将该数字转换为字符串并获取字符from the doc

String s = ... your 241233 as String;
var chars = s.ToCharArray();
Console.WriteLine("Original string: {0}", s);
Console.WriteLine("Character array:");
for (int ctr = 0; ctr < chars.Length; ctr++)
   Console.WriteLine("   {0}: {1}", ctr, chars[ctr]);

答案 3 :(得分:0)

我认为您的解决方案是字典,字典有,每个项目的

您可以将每个项目(数字)存储在一个字母中,例如A = 1.

首先,您构建一个将您的数字转换为字典的方法

        public static void split(string number)
        {
        Dictionary<string, string> dict = new Dictionary<string, string>();
        string s = "ABCDEF";

        for (int i = 0; i < 6; i++)
        {
            dict.Add( s[i].ToString()  , number[i].ToString()); // Here you add each char of the string ABCDEF, to the value from each char of the number. In this case A=2.
            Console.WriteLine($"LETTER { s[i].ToString()} =  { dict[s[i].ToString()]  }" ); // Here you print the values of your dictionary, if you want to call a value of your dictionary, you only have to say: dictionaryname[key], in this case, dictionaryname['A']
        }

       }

之后,您调用您的方法,您的方法的参数将是您要转换的数字。

  static void Main(string[] args)
        {
            split("241233");
        }

请你,你必须阅读代码的评论//,

结果:

enter image description here