C#设计模式——解释器模式
来源:互联网 发布:曼德拉毁了南非知乎 编辑:程序博客网 时间:2024/05/16 05:35
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Explaining{ public class Translaton { public static string Translator(string source) { StringBuilder StringBuilder = new StringBuilder();//新建一个可变字符串对象 List<ITarget> TranslationList = new List<ITarget>();//新建一个存放翻译的列表 string[] words1 = source.Split(new char []{'.'},StringSplitOptions.RemoveEmptyEntries);//拆分输入的字符串的单词和符号 foreach (string wd1 in words1) { string[] word2 = wd1.Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries);//拆分单词,通过空格空格 foreach (string wd2 in word2) { TranslationList.Add(new Expression(wd2)); } TranslationList.Add(new smybols(".")); } foreach (ITarget sy in TranslationList) { sy.interpret(StringBuilder);// } return StringBuilder.ToString(); } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Explaining{ public class EnglishToChinese { static Dictionary<string, string> WordsDictionary = new Dictionary<string, string>();//定义英汉翻译内容 static EnglishToChinese() { WordsDictionary.Add("this","这"); WordsDictionary.Add("is", "是"); WordsDictionary.Add("a", "一部"); WordsDictionary.Add("huawei", "华为"); WordsDictionary.Add("phone", "手机"); } public static string GetChinese(string english)//定义英汉翻译方法 { return WordsDictionary[english];//使用索引通过key查询Value } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Explaining{ public interface ITarget { void interpret(StringBuilder StringBuilder);//定义接口 }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Explaining{ public class Expression:ITarget { private string english; public Expression(string eg )//封装构造 { this.english = eg; } public void interpret(StringBuilder StringBiulder) { StringBiulder.Append(EnglishToChinese.GetChinese(english.ToLower()));//获取word中的英语key并转为小写,通过索引转为汉语,添加至stringbuilder中 } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Explaining{ class Program { static void Main(string[] args) { string ss = "this is a huawei phone."; string print = Translaton.Translator(ss);//传入参数 Console.WriteLine(print); //Console.Read(); Console.ReadKey(); } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Explaining{ public class smybols:ITarget { private string smybol; public smybols(string symbol) { this.smybol = symbol; } public void interpret(StringBuilder StringBuilder)//定义英汉标点的翻译方法 { switch (smybol) { case".": StringBuilder.Append("。"); break; } } }}
0 0
- C#设计模式—解释器模式
- C#设计模式之16——解释器模式
- C#设计模式——解释器模式
- 设计模式——解释器模式
- 设计模式——解释器模式
- 设计模式—— 解释器模式
- 设计模式——解释器模式
- 设计模式学习—解释器模式
- Java设计模式—解释器模式&迭代器模式简介
- 设计模式——解释器设计模式
- 设计模式——解释器
- 设计模式学习—Interpreter(解释器)
- 每日设计模式——解释器模式
- 设计模式学习笔记——解释器模式
- java设计模式——解释器模式
- 设计模式(22)——解释器模式
- 设计模式——解释器模式(二)
- 设计模式学习笔记——解释器模式
- 求生之路2 资源
- ART环境对Android热修复方案的影响分析
- 分布式存储:一致性哈希
- 单例模式:Singleton
- 初试Scrapy(二)---抓取豆瓣电影排行TOP250实验
- C#设计模式——解释器模式
- 如何提高程序员的生产率 (1)
- 动态库和静态库的区别
- JAVA IO详解
- CoreAnimation研究(1)
- JVM 基础知识
- RxJava运用Scheduler完成多线程操作
- Linux程序设计基础-编程基础
- 求生之路2 游戏资料详细与细节