热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一分钟记住常用的摩尔斯电码

1:今天刷知乎时看到了个摩尔斯电码的对照表,感觉还是很好记忆的。练习几十个字母就差不多了。如下图:是不是很好记~~2:在电影星际穿越中男主cooper就是通过钟表的滴答进行
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+"\n"+"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         /// 
 30         /// 待编码数据 key-value => 字母-mors
 31         /// 
 32         public  static Dictionary<string, string> UnCodeData
 33         { 
 34             get{return unCodeData;}
 35             private set{}
 36         }
 37         /// 
 38         /// 反编码数据 key-value => mors-字母
 39         /// 
 40         public  static Dictionary<string, string> CodeData
 41         { 
 42             get{return codeData;}
 43             private set{}
 44         }
 45         /// 
 46         /// 添加其他电码
 47         /// 
 48         /// 
 49         /// 
 50         /// 
 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         /// 
104         /// 编码为mors
105         /// 
106         /// 
107         /// 
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         /// 
124         /// 解码为mors电码
125         /// 
126         /// 
127         /// 
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

 点赞的伙伴今年都能找到像楼上一样漂亮的女神~~(我不是来骗赞的~~不信你试试)


推荐阅读
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • javaftp上传,javaftp下载文件
    本文目录一览:1、javaftp上传5G以上大文件,怎么做 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 通俗易懂玩QT:Qt 使用 QAxObject 类读写 Excel 文档(内附源码)
    Qt使用QAxObject类读写Excel文档因为工作需要,最近研究了一下使用Qt的QAxObject类实现对Excel文档的简单读写,查阅了很多资料 ... [详细]
  • splitjava的简单介绍
    本文目录一览:1、Javasplit方法2、 ... [详细]
  • 这期内容当中小编将会给大家带来有关如何在php表单中使用正则表达式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可 ... [详细]
author-avatar
蓝社
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有