一分钟记住常用的摩尔斯电码
生活随笔
收集整理的这篇文章主要介绍了
一分钟记住常用的摩尔斯电码
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1:今天刷知乎时看到了个摩尔斯电码的对照表,感觉还是很好记忆的。练习几十个字母就差不多了。如下图:是不是很好记~~
2:在电影星际穿越中男主cooper就是通过钟表的滴答进行信息传递的,还有去年is杀害日本人质时,媒体猜测被害人在遇害时通过眨眼睛对世人说“不要救我,放弃我”。
3:上大图
4:上大图
1 /*简单问题要复杂会,看起来很厉害的样子,有时候仅仅是打印了一个helloworld而已~~*/
2 class Program
3 {
4 static void Main(string[] args)
5 {
6 Mors.AddCodeData("testkey", "testvalue");
7 var testStr="hello boy";
8 var resultEncode=Mors.Encode(testStr);
9 var resultDecode=Mors.Decode(resultEncode);
10 Console.WriteLine("Encode:" + resultEncode+"
"+"Decode"+resultDecode);
11 Console.ReadLine();
12 }
13 }
14 public static class Mors
15 {
16 private static Dictionary<string, string> unCodeData = new Dictionary<string, string>()
17 {
18 {"a",".-"},{"b","-..."},{"c","-.-."},{"d","-.."},{"e","."},{"f","..-."},{"g","--."},{"h","...."},{"i",".."},{"j",".---"},{"k","-.-"},
19 {"l",".-.."},{"m","--"},{"n","-."},{"o","---"},{"p",".--."},{"q","--.-"},{"r",".-."},{"s","..."},{"t","-"},{"u","..-"},{"v","...-"},
20 {"w",".--"},{"x","-..-"},{"y","-.--"},{"z","--.."},{",","--..--"},{".",".-.-.-"}
21 };
22 private static Dictionary<string, string> codeData = new Dictionary<string, string>()
23 {
24 {".-","a"},{"-...","b"},{"-.-.","c"},{"-..","d"},{".","e"},{"..-.","f"},{"--.","g"},{"....","h"},{"..","i"},{".---","j"},{"-.-","k"},
25 {".-..","l"},{"--","m"},{"-.","n"},{"---","o"},{".--.","p"},{"--.-","q"},{".-.","r"},{"...","s"},{"-","t"},{"..-","u"},{"...-","v"},
26 {".--","w"},{"-..-","x"},{"-.--","y"},{"--..","z"},{"--..--",","},{".-.-.-","."}
27 };
28
29 /// <summary>
30 /// 待编码数据 key-value => 字母-mors
31 /// </summary>
32 public static Dictionary<string, string> UnCodeData
33 {
34 get{return unCodeData;}
35 private set{}
36 }
37 /// <summary>
38 /// 反编码数据 key-value => mors-字母
39 /// </summary>
40 public static Dictionary<string, string> CodeData
41 {
42 get{return codeData;}
43 private set{}
44 }
45 /// <summary>
46 /// 添加其他电码
47 /// </summary>
48 /// <param name="key"></param>
49 /// <param name="value"></param>
50 /// <returns></returns>
51 public static bool AddUncodeData(string key,string value)
52 {
53 if(!UnCodeData.Keys.Contains(key))
54 {
55 UnCodeData.Add(key,value);
56 if(CodeData.Keys.Contains(value))
57 throw new Exception("data error");
58 CodeData.Add(value,key);
59 return true;
60 }
61 return false;
62 }
63 public static bool AddCodeData(string key,string value)
64 {
65 if(!CodeData.Keys.Contains(key))
66 {
67 CodeData.Add(key,value);
68 if(UnCodeData.Keys.Contains(value))
69 throw new Exception("data error");
70 UnCodeData.Add(value,key);
71 return true;
72 }
73 return false;
74 }
75 public static bool RemoveUncodeData(string key)
76 {
77 if(UnCodeData.Keys.Contains(key))
78 {
79 var value=UnCodeData[key];
80 if(codeData.Keys.Contains(value))
81 {
82 UnCodeData.Remove(key);
83 codeData.Remove(value);
84 }
85 return true;
86 }
87 return false;
88 }
89 public static bool RemoveCodeData(string key)
90 {
91 if (CodeData.Keys.Contains(key))
92 {
93 var value = CodeData[key];
94 if (UnCodeData.Keys.Contains(value))
95 {
96 CodeData.Remove(key);
97 UnCodeData.Remove(value);
98 }
99 return true;
100 }
101 return false;
102 }
103 /// <summary>
104 /// 编码为mors
105 /// </summary>
106 /// <param name="str"></param>
107 /// <returns></returns>
108 public static string Encode(string str)
109 {
110 /// hello word
111 if (str.Length < 0)
112 return string.Empty;
113 var words = Regex.Replace(str.Trim(), @"s+", " ").Split(' ');
114 var result=string.Join("/",words.Select(word=>
115 {
116 return string.Join(" ", word.ToCharArray().Select(letter =>
117 {
118 return UnCodeData[letter.ToString()];
119 }));
120 }));
121 return result;
122 }
123 /// <summary>
124 /// 解码为mors电码
125 /// </summary>
126 /// <param name="str"></param>
127 /// <returns></returns>
128 public static string Decode(string str)
129 {
130 //..- ---- .--. .-
131 var words = Regex.Replace(str.Trim(), @"s+", " ").Split('/').Select(word=>word.Trim()).ToArray();
132 var result=string.Join(" ", words.Select(word=>
133 {
134 return string.Join("", word.Split(' ').Select(letter=>
135 {
136 return CodeData[letter.ToString()];
137 }));
138 }));
139 return result;
140 }
141 }
View Code
点赞的伙伴今年都能找到像楼上一样漂亮的女神~~(我不是来骗赞的~~不信你试试)
总结
以上是生活随笔为你收集整理的一分钟记住常用的摩尔斯电码的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 9050 端口 linux 进程,win
- 下一篇: 特斯拉 Model 3 焕新版新增“主动