我的号码是:241233 如何将这个数字拆分成单独的数字? 就像是: a = 2,b = 4,c = 1,d = 2,e = 3,f = 3 我可以用C#做这个吗? (VisualStudio 2013) PS:每次都会改变数字,但我知道它有6位数
答案 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");
}
请你,你必须阅读代码的评论//,
结果: