using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Explaining
{
publicclass Translaton
{
publicstaticstringTranslator(string source)
{
StringBuilder StringBuilder = new StringBuilder();//新建一个可变字符串对象
List<ITarget> TranslationList = new List<ITarget>();//新建一个存放翻译的列表string[] words1 = source.Split(newchar []{'.'},StringSplitOptions.RemoveEmptyEntries);//拆分输入的字符串的单词和符号foreach (string wd1 in words1)
{
string[] word2 = wd1.Split(newchar[]{' '},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
{
publicclass 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", "手机");
}
publicstaticstringGetChinese(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
{
publicinterface ITarget
{
void interpret(StringBuilder StringBuilder);//定义接口
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Explaining
{
publicclass Expression:ITarget
{
privatestring english;
publicExpression(string eg )//封装构造
{
this.english = eg;
}
publicvoidinterpret(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;
namespaceExplaining
{classProgram
{staticvoid 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
{
publicclass smybols:ITarget
{
privatestring smybol;
publicsmybols(string symbol)
{
this.smybol = symbol;
}
publicvoidinterpret(StringBuilder StringBuilder)//定义英汉标点的翻译方法
{
switch (smybol)
{
case".":
StringBuilder.Append("。");
break;
}
}
}
}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Explaining{ public class Translaton { public static string