【发布时间】:2016-02-21 04:34:16
【问题描述】:
获取输入、检查字典以及是否匹配替换为定义的最佳方法是什么?
我正在尝试制作一个莫尔斯电码转换器,我决定使用字典来存储莫尔斯电码翻译。不过,我正在努力想出根据输入检查字典的最佳方法。
我可以做类似...
If unconvertedInput = morseDic commaMorse
但是,我认为这将非常低效。或者字典不是去这里的方式?我只是不确定。
这也是我不完整的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MorseCodeConverter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Dictionary<string, string> morseDictonary = new Dictionary<string, string>();
morseDictonary.Add(" ", " ");
morseDictonary.Add(",", "--..--");
morseDictonary.Add(".", ".-.-.-");
string spaceMorse = morseDictonary[" "];
string commaMorse = morseDictonary[","];
string periodMorse = morseDictonary["."];
MessageBox.Show(spaceMorse);
}
}
}
【问题讨论】:
-
你能提供一个示例输入和输出吗?
-
大概您一次只能替换一个字符,对吧?听起来您应该创建一个新的 StringBuilder 并一次遍历输入一个字符,附加原始字符或字典中的值。顺便说一句,每次按下按钮时,您的字典都将是相同的 - 所以您不妨将它放在静态变量中。
-
你想把莫尔斯电码转成文本还是反过来
-
为什么你认为它效率低下?即使在现实生活中,你也会做类似的操作。事实上,我已经多次被警告过这类问题可能会被否决。
标签: c#