c#运用——简体字转繁体字

下面通过用c#的字符串和Hashtable类来实现一个简体字转繁体字的功能,然后分析一些c#的语法

源码

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 简体字转繁体字
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] simpleStrs = File.ReadAllLines(@"E:\code\test\简体字.txt",Encoding.Default);
            string simpleStr = String.Join("", simpleStrs);
            string[] complexStrs =  File.ReadAllLines(@"E:\code\test\繁体字.txt",Encoding.Default);
            string complexStr = String.Join("", complexStrs);
            //Console.WriteLine(complexStr);
            Hashtable transform=new Hashtable();
            for (int i = 0; i < simpleStr.Length; i++)
            {
                transform.Add(simpleStr[i], complexStr[i]);
            }
            Console.WriteLine("请输入一句话");
            string originalStr = Console.ReadLine();
            StringBuilder stb = new StringBuilder();
            for (int i = 0; i < originalStr.Length; i++)
            {
                if (transform.Contains(originalStr[i]))
                {
                    stb.Append(transform[originalStr[i]]);
                }
                else
                {
                    stb.Append(originalStr[i]);
                }
            }
            Console.WriteLine("转化为繁体字为:");
            Console.WriteLine(stb);
            Console.ReadKey();
        }
    }
}

程序运行结果

值类型和引用类型

区别:

1. 值类型和引用类型在内存上存储的地方不一样

2. 传递值类型和引用类型的时候,传递的方式不一样。

值类型:int、double、bool、struct、enum 等存储在栈中。

引用类型:string、自定义类等,应用类型的值存在堆中,在栈中存的是堆中的地址。

4. 字符串的不可变性:指的是堆里面的内容不可变,这种内容具有唯一性,所以如果你有很多个string都叫”abc”,实际上”abc”在,栈里的内容可以变。

5. 即时窗口可以查看内存地址。

6. 如果是在想改变字符串中某个字符怎么办呢,首先将字符串转换为char类型的数组,这个数组存在栈区,调用ToCharArray();返回char类型数组,然后改变,然后调用string(char [])这个构造函数再产生一个新String;

7. 我们大量对字符串进行拼接赋值操作时,内存中会产生大量的垃圾,这是我们需要StringBuilder,

string的方法

函数名 作用
Equals() 比较字符串,第二个参数可设为StringComparison.OrdinalIgnoreCase
Split() 字符串分割,第一个参数可以是不需要的那些字符构成的数组, 第二个参数StringSplitOption.RemoveEmptyEntries 把空项移除,返回分割出来的字符串数组;可以用来处理Jeson数据等格式化数据;
IndexOf 字符串中第一次出现某个序列的位置
Trim() 去除字符串两边的空格
Join() 把字符串数组格式化为字符串

继承注意事项

继承构造函数 在子类构造函数的函数列表里只能写:base(,,)不能写:父类名(,,,)

当子类隐藏父类的成员方法,可以在返回类型前加关键字new 来隐藏从父类哪里继承来的成员,隐藏的后果是子类调用不到父类的成员;

集合

里氏转换:

就是子类对象可以赋值给父类引用(隐式转换),如果父类引用指向的是子类对象,可以把父类强行转换为子类(显式转换),当然用is或as可以判断是不是那种对象;

is : 判断类型,如果是的那就返回true 否则返回false;需测试没有关系的类之间的情况;

as: 进行强转,如果成功就返回转换得到的那个对象,失败就返回null;

ArrayList

是一个集合:我们主要用泛型类型,这个类型不怎么用了 Array 类型一定,然后长度可变;

表示添加单个数据,其实都是引用无所谓的啦。很多数据的一个集合,相对于数组有两大好处;类型可以不一样,长度可变。

函数名 作用
add(object) 可以放object的任意对象
addRange 添加集合的时候使用
clear 移除所有的元素
Remove 根据对象删除
RemoveAt 根据下标删除
RemoveRange 根据下标范围删除
Contains 判断是否包含指定的对象
sort 排序,有些不同类型的元素排序没有意义
Reverse 逆序
Insert 插入对象
InsertRange 插入一定范围的元素

有个Count属性和别的对象的Length属性是一样的。

size() Capacity属性表示已分配的容量 刚开始为4,然后每次扩大一倍。

Hashtable

是键值对集合;(table开头小写哦)

在键值对集合中,是根据键找值的,用键做下标; 用foreach循环来遍历键值对集合,;

hashtable里面有两个重要的属性一个是Keys是键的集合,一个是Values是值的集合。键只能出现一次,值可以出现很多次;

函数名 作用
Add(key,value) 在现有HashTable里面试图添加一个键值对
Contains(key) 在现有HashTable判断是否包含某个键
ContainsKey(key) 在现有HashTable判断是否包含某个键
ContainsValue(value) 在现有HashTable判断是否包含某个值

ContainsValue

添加键值对的时候可以使用Add,也可以使用ht[键]=值(调用insert); 可以使用Contains和ContainsKey来判断是否包含某个键,用ContainsValue判断是否包含某个值;

foreach

foreach的效率比for要低一点;

var

c#是一门强类型语言,在代码当中必须对每一个变量的类型有一个明确的定义;

var用于弱类型中,var根据值能够推断出来类型,object有个GetType可以获取这个对象的类型。隐式类型的局部变量必须初始化,var一般用在foreach里面

path

是静态类

在System.IO里面,

函数名 作用
GetFileName(“文件的全路径”) 获取当前文件的文件名
GetFileNameWithoutExtension 获得不包括扩展名的文件名
GetExtension 获得文件的扩展名
GetDirectoryName 获得当前文件夹的名字
GetFullPath 获取当前文件的全路径

string [] contents=File.ReadAllLines(path,Encoding.Default);

Directory.GetFiles(path,”*.txt”);//第二个选项是正则表达式匹配;这个是Directory类的静态方法;这个返回的是带目录名的文件名

DirectoryInfo类的对象有一个GetFiles和EnumerateFiles的方法也可以,返回的是不带目录名的文件名;

DirectoryInfo类有另外的实例方法GetDirectory和EnumerateDirectory()可以获取子文件夹的信息;

File类

是静态类

方法名 作用
Create(“”) 根据目录试图创建一个文件,如果文件已存在截取内容为空
Delete(“”) 根据目录试图删除一个文件,如果文件不存在
Copy(源文件,目标文件) 复制源文件,试图粘贴到目标文件
move(源文件,目标文件) 移动一个文件到另一个地方
ReadAllBytes() 从文件中读取一个字节数组
Encoding.Default.GetString(字节数组) 把字节数组转换为字符串
Encoding.Default.GetBytes(字符串) 把字符串转换为字节数组
WriteAllBytes() 把字节数组写入文件里
时间: 2024-10-29 19:08:15

c#运用——简体字转繁体字的相关文章

写C#代码时用到的中文简体字 、繁体字 对应的转化 (收藏吧)

简体字    下面有与之对应的繁体字 private const String Jian = "啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛

马英九谈简繁体:13亿人使用简体字 我们要融合

核心提示:“这怎么对抗?不是要对抗,我们的作法是融合.” 点击图片进入下一页 台湾地区领导人马英九写得一手好毛笔字.http://www.jhxcyy.com/jxsysz/278.html http://www.jhxcyy.com/jxsysz/279.html http://www.jhxcyy.com/jxsysz/280.html http://www.jhxcyy.com/jxsydwh/281.html http://www.jhxcyy.com/jxsydwh/282.html

java基础学习总结二(标识符、字符集、数据类型以及类型转换)

一:标识符 1:标识符可以由字母.数字.下划线_.$符等组成2:标识符的首字母只能是字母.数字.下划线3:标识符不能使用关键字或者保留字4:标识符可以是中文,但是不建议使用中文5:标识符可以任意长,没有限制. 二:字符集 ISO8859-1:标准字符集,西方国家都在使用BIG5:台湾地区使用GB2312:大陆地区最早使用(简体字符集)GBK:在gb2312基础上的扩展,包括简体字和繁体字GB18030:包括简体字.繁体字.藏蒙维吾尔等少数民族语言等 三:数据类型 数据类型分为基本数据类型和引用数

【分享】VNR翻译日语游戏汉化简易图解教材2

[分享]VNR翻译日语游戏汉化简易图解教材 http://867258173.diandian.com/post/2014-07-19/40062240755  请先看上面[PC,PSP,同人志翻译图解教材]和下载[J北京各版本],[J北京词典].[精灵虚拟光驱],[APP,NT,LE,,Ntleas四大转码工具]和[AlphaROM一键破解],7z之类相关的 请先看上面地址和下载,以后更新的教材和新的整合版将在这里补充.   使用OCR光学识别自动翻译游戏 添加[人工字幕]提高翻译质量   游

繁简汉字之争:简约与厚重之间的文明两难

繁简汉字之争:简约与厚重之间的文明两难 摘自<北晚新视觉> 2014年10月13日讯,每当汉字掀起一股热潮的时候,汉字的"繁简之争"总是会被拿出来议论一番.简体字方便书写记忆.繁体字更有文化内涵.因为历史原因,海峡两岸的中国人分别以简体字和繁体字作为通用汉字,文字的不同更是带来文化上的比较和争论.一段流传十分广泛的话痛陈汉字简化后的种种弊端:"汉字简化后,親不见,愛无心,產不生,厰空空,麵无麦,運无车,導无道,兒无首,飛单翼,湧无力,有雲无雨,開関无门,鄉里无郎-

《上古天真论》第二讲文字版

上古天真论篇第二讲 主讲:徐文兵  主持:梁  冬 播出时间:2008-12-20  23:00—24:00     经文:食饮有节,起居有常,不妄作劳,故能形与神俱,而尽其天年,度百岁乃去.今时之人不然也,以酒为浆,以妄为常,醉以入房,以欲竭其精,以耗散其真,不知持满,不时御神,务快其心,逆于生乐,起居无节,故半百而衰也. 梁:辅佐中国文化,发扬光大,大家好我的梁东,在我面前的是我非常尊敬的厚朴中医学堂的堂主徐文兵老师. 徐:梁东好,听众朋友们,大家好! 梁:大家好!我们计划,从新发现中医太美

《上古天真论》第一讲文字版

上古天真论篇第一讲主讲:徐文兵  主持:梁  冬播出时间:2008-12-06  23:00—24:00  经文:昔在黄帝,生而神靈,弱而能言,幼而徇齐,长而敦敏,成而等天.乃问于天师曰:余闻上古之人,春秋皆度百岁,而动作不衰:今时之人,年半百而动作皆衰者,时世异耶?人将失之耶?岐伯对曰:上古之人,其知道者,法于阴阳,和于术数, 梁冬:我是梁冬.梁某人.而做在我对面的是我的在求学中医方面的偶像级的老师徐文兵老师,徐老师你好!徐文兵:梁冬好!听众朋友们大家好!梁冬:啊呀,一看就很有这个电台风范,从

【webservice】使用命令wsimport构建WebService客户端

wsimport命令介绍 在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方.该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现.对于命令的使用方法,我们以开放的中文简体字与繁体字转换Web Service接口为例,如下: 在命令提示符中使用如下命令: wsimport -keep -p com.zhj2f

Java_开源框架_JPinyin汉字转拼音的Java开源库

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/50039339 1.介绍 JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进.[JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:2.拼音转换速度快:经测试,转换Unicode编