程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#運用——簡體字轉繁體字

c#運用——簡體字轉繁體字

編輯:C#入門知識

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() 把字節數組寫入文件裡

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved