C # Alpha Переводчик телефонных номеров
У меня есть домашнее задание, где программа принимает любой номер телефона в формате, аналогичном 555-GET-FOOD. Задача состоит в том, чтобы сопоставить буквы алфавита с числами и перевести число в его числовой эквивалент.
Например: A, B, C = 2; D, E, F = 3; так далее...
На данный момент мы не рассматривали классы и не создавали карты, поэтому они не были бы жизнеспособными решениями. В этой главе описывается перечисление, поэтому я работаю над решением с использованием типа Enumerated. У меня есть метод, настроенный для проверки данных (убедитесь, что правильное количество символов и дефисы находятся в правильном месте), и это работает правильно. У меня есть другой метод, настроенный для удаления дефисов, который также использует метод ToUpper (), и это также работает правильно, поэтому цикл foreach, который я настроил, использует число после того, как эти два метода уже завершены.
Я также настроил метод для запуска после преобразования, чтобы добавить дефисы обратно, и это тоже работает.
Я попробовал несколько способов заставить работать, и оставил их в комментариях о том, что они могут быть тем, что мне нужно использовать, для моей попытки с оператором switch я настроил только букву A на данный момент и планирую закончите оставшиеся буквы, если я смогу заставить это работать. Я думаю, что одной из моих проблем является то, что цикл foreach использует тип char, а переключатель использует int. Кажется, та же проблема при попытке кода внутри цикла foreach, но я не уверен, как это исправить, поэтому любые предложения приветствуются.
public enum AlphaNumber
{
A=2, B=2, C=2, D=3, E=3, F=3, G=4, H=4, I=4, J=5, K=5, L=5,
M=6, N=6, O=6, P=7, Q=7, R=7, S=8, T=8, U=8, V=9, W=9, X=9, Y=9, Z=9
}
private void UpdatePhone(AlphaNumber phone)
{
switch (phone)
{
case AlphaNumber.A:
//return AlphaNumber.(int[])Enum.GetValues(typeof(AlphaNumber));
//return (Enum.GetValues(typeof(AlphaNumber)));
// (int)ValueType;
Enum.GetValues(typeof(AlphaNumber));
break;
}
private void translateButton_Click(object sender, EventArgs e)
{
numberLabel.Text = "";//Clear the numberLabel
//Get a trimmed copy of the user's input.
string input = numberTextBox.Text.Trim();
if (IsValidFormat(input))
{
Unformat(ref input);
foreach (char ch in input)
{
if (char.IsLetter(ch))// {
ch = (char)Enums.AlphaNumber.Active;
//ch = (char)Enum.GetValues(typeof(AlphaNumber));
//ch = Enum.TryParse(AlphaNumber);
// ch = AlphaNumber.(int[])Enum.GetValues(typeof(AlphaNumber));
//UpdatePhone(ch);
MessageBox.Show("Character is char"); }
}
TelephoneFormat(ref input);
numberLabel.Text = input;
Я открыт для любых предложений и ценю любую предоставленную помощь. Там, где мне нужна помощь, находится внутри цикла foreach, я смотрю на каждое значение, и если это буква, я хочу получить значение из значений перечисления и заменить символ на числовое значение.