因此,对于这个C#类,我必须让用户在控制台中输入一个7位数的电话号码。每个号码都存储为不同的字符。然后将每个字符更改为一个字母。数字改变后的字母背后没有逻辑。 (我真的没有看到这个任务的重点,这可能是我的编码器阻塞的原因。)这就是作业所说的内容。
您的任务:预付费电话服务需要一个程序,将字母数字键盘输入转换为电话号码。用户将输入八个字符,程序将输出错误消息或翻译的七位数电话号码。输入可以包含数字,字母或两者。字母可以是大写或小写。
编码方法:
程序将按标准电话键盘布局执行转换。
基本上,2 s A,B,C 3是D,E,F 等等然后D,E,F是3,依此类推。
现在除了输入之外我什么都没做,但是它不是作为字符存储的,只是一个字符串。我真的很讨厌这个任务,因为我们只使用Cases和If语句做了两个作业,这对我来说似乎是多余的。
Console.WriteLine("Write a Phone Number that consists of Seven Numbers.");
string Number = Console.ReadLine();
if (Number.Length != 7)
Console.WriteLine("You have entered a phone number that is too long.");
Console.WriteLine("You have entered: {0}", Number);
Console.ReadLine();
所以我真正的问题是:如何将输入数字存储为字符,然后使用case语句定义这些字符?
答案 0 :(得分:1)
如果没有在课堂上讨论过,请不要使用Dictionary课程,你可能会在作业中获得不好的成绩,因为这个作业要用你在课堂上学到的工具来解决。
有两种方法可以解决这个问题。
为一个人可以输入的每个字母或数字制作一个switch
声明。如果您为字母表中的每个字母设置case
并输入相应的数字,这可能会给您带来不好的成绩,但如果您使用case
语句的某些功能,例如“跌穿”(没有联系,我留给你研究那是什么)你可能会得到一个好成绩。
这也可以使用if
语句来完成,就像第1点一样,如果你为每个条目设置一个if
,你会得到一个不好的成绩,但是如果你能弄明白的话如何用一个A, B, C, and 1
来解决if
你可能会得到一个好成绩。
我会给你如何单独收到每封信的答案,因为我不认为这是课程的愚蠢,最简单的方法是用foreach声明来做。
string finalNumber = "";
foreach(char digit in Number)
{
finalNumber += ProcessDigit(digit);
}
Console.WriteLine(finalNumber);
//Elsewhere
char ProcessDigit(char digit)
{
char newDigit;
//change digit to whatever you needed to turn it in to and store it in newDigit;
return newDigit;
}
另一个freebee,在你把它送到foreach之前在字符串上做ToUpperInvariant(),你只需要检查大写字母。
答案 1 :(得分:0)
由于这是作业,你应该做的一些步骤:
答案 2 :(得分:0)
您可以创建一个字典,将所有可能的输入字符映射到您想要的输出。输入后,您可以根据字典替换字符。
答案 3 :(得分:0)
这应该有效
Dictionary<string, int> dict = new Dictionary<string, int>();
dict.Add("ABC", 2);
dict.Add("CDE", 3);
dict.Add("FGH", 4);
dict.Add("JKL", 5);
string Numbers = "BDJ";
string myints = "";
foreach (char c in Numbers)
myints += dict.FirstOrDefault(X => X.Key.Contains(c)).Value.ToString();
//the output : "235"
答案 4 :(得分:0)
真的很抱歉没有回复此问题或选择正确的答案,我最终自己想出来了。我遇到这么多麻烦的原因是因为我认为我想为1(800)384-2347创建几个输出并将最后4个数字转换成可能有意义的各种字母。但这只是一个简单的案例陈述。