最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)漢字轉(zhuǎn)區(qū)位碼的示例代碼

 更新時間:2024年01月03日 09:35:11   作者:wenchm  
區(qū)位碼是一個4位的十進制數(shù),每個區(qū)位碼都對應著一個唯一的漢字,區(qū)位碼的前兩位叫做區(qū)碼,后兩位叫做位碼,下面我們就來看看如何使用C#實現(xiàn)漢字轉(zhuǎn)區(qū)位碼吧

一、關(guān)于區(qū)位碼 

1.區(qū)位碼定義

區(qū)位碼是一個4位的十進制數(shù),每個區(qū)位碼都對應著一個唯一的漢字,區(qū)位碼的前兩位叫做區(qū)碼,后兩位叫做位碼。

2.算法

首先通過Encoding對象的GetBytes方法得到漢字的字節(jié)數(shù)組,將字節(jié)數(shù)組的第一位和第二位分別轉(zhuǎn)換為整型數(shù)值,然后將得到的兩個整型數(shù)值分別減160后轉(zhuǎn)換為字符串,連接兩個字符串就組成了漢字區(qū)位碼。

string P_Chinese ="科";
byte[] P_bt_array =Encoding.Default.GetBytes(Chinese);
short front =(short)(P_bt_array[0]-'\0'); //將字節(jié)數(shù)組的第一位轉(zhuǎn)換成short類型
short back =(short)(P_bt_array[1]-'\0');  //將字節(jié)數(shù)組的第二位轉(zhuǎn)換成short類型
string P_Result =(front -160).ToString()+(back-160).ToString();

Encoding對象的GetBytes方法提供了多個重載,可以接收字符串、字符數(shù)組等對象。

可以使用FileStream對象將字節(jié)數(shù)組寫入文件。

使用Encoding對象的GetBytes方法可以得到字符串對象的字節(jié)數(shù)組,現(xiàn)在可以創(chuàng)建一個FileStream對象,方便地將字節(jié)數(shù)組寫入文件中。同樣地,可以從文件中讀取字節(jié)數(shù)組,然后調(diào)用Encoding對象的GetString方法將字符數(shù)組轉(zhuǎn)換為字符串。

二、實例

//漢字與區(qū)位碼的轉(zhuǎn)換
using System.Text;
 
namespace _037
{
    public partial class Form1 : Form
    {
        private GroupBox? groupBox1;
        private TextBox? textBox2;
        private Button? button1;
        private TextBox? textBox1;
        private Label? label1;
 
        public Form1()
        {
            InitializeComponent();
            Load += Form1_Load;
        }
        private void Form1_Load(object? sender, EventArgs e)
        {
            // 
            // textBox2
            // 
            textBox2 = new TextBox
            {
                Location = new Point(102, 57),
                Name = "textBox2",
                Size = new Size(100, 23),
                TabIndex = 3
            };
            // 
            // button1
            // 
            button1 = new Button
            {
                Location = new Point(21, 57),
                Name = "button1",
                Size = new Size(75, 23),
                TabIndex = 2,
                Text = "轉(zhuǎn)區(qū)位碼",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // textBox1
            //             
            textBox1 = new TextBox
            {
                Location = new Point(102, 28),
                Name = "textBox1",
                Size = new Size(100, 23),
                TabIndex = 1
            };
            // 
            // label1
            // 
            label1 = new Label
            {
                AutoSize = true,
                Location = new Point(21, 34),
                Name = "label1",
                Size = new Size(68, 17),
                TabIndex = 0,
                Text = "輸入漢字:"
            };
            // 
            // groupBox1
            // 
            groupBox1 = new GroupBox
            {
                Location = new Point(12, 12),
                Name = "groupBox1",
                Size = new Size(220, 102),
                TabIndex = 0,
                TabStop = false,
                Text = "漢字轉(zhuǎn)區(qū)位碼"
            };
            groupBox1.SuspendLayout();
            groupBox1.Controls.Add(textBox2);
            groupBox1.Controls.Add(button1);
            groupBox1.Controls.Add(textBox1);
            groupBox1.Controls.Add(label1);
          
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(244, 126);
            Controls.Add(groupBox1);
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "漢字轉(zhuǎn)區(qū)位碼";          
            groupBox1.ResumeLayout(false);
            groupBox1.PerformLayout();
        }
 
        private void Button1_Click(object? sender, EventArgs e)
        {
            if (textBox1!.Text != string.Empty) //判斷輸入是否為空
            {
                try
                {
                    textBox2!.Text =            //得到漢字區(qū)位碼信息
                        GetCode(textBox1.Text);
                }
                catch (IndexOutOfRangeException ex)
                {
                    MessageBox.Show(            //使用消息對話框提示異常信息
                        ex.Message + "請輸入正確的漢字", "出錯!");
                }
            }
            else
            {
                MessageBox.Show("請輸入正確的漢字", "提醒!");
            }
        }
        /// <summary>
        /// 得到漢字區(qū)位碼方法
        /// </summary>
        /// <param name="strChinese">漢字字符</param>
        /// <returns>返回漢字區(qū)位碼</returns>
        public static string GetCode(string Chinese)
        {
            byte[] byte_array = Encoding.Default.GetBytes(Chinese); //字符串轉(zhuǎn)Byte數(shù)組
            int front = (short)(byte_array[0] - '\0');              //將字節(jié)數(shù)組的第一位轉(zhuǎn)換成short類型
            int back = (short)(byte_array[1] - '\0');               //將字節(jié)數(shù)組的第二位轉(zhuǎn)換成short類型
            return (front - 160).ToString() + (back - 160).ToString();//計算并返回區(qū)位碼
        }
    }
}

三、生成效果

四、程序中的知識點

1.byte[] GetBytes(string s)

用途:字符串轉(zhuǎn)Byte數(shù)組

 public virtual byte[] GetBytes(string s)
 {
     if (s == null)
     {
         throw new ArgumentNullException("s", Environment.GetResourceString("ArgumentNull_String"));
     }
 
     int byteCount = GetByteCount(s);
     byte[] array = new byte[byteCount];
     int bytes = GetBytes(s, 0, s.Length, array, 0);
     return array;
 }
//使用UTF-8的字符集,將字符串轉(zhuǎn)換為字節(jié)數(shù)組
byte[]utf8 =Encoding.UTF8.GetBytes(str);

2.字節(jié)數(shù)組轉(zhuǎn)short類型

到此這篇關(guān)于C#實現(xiàn)漢字轉(zhuǎn)區(qū)位碼的示例代碼的文章就介紹到這了,更多相關(guān)C#漢字轉(zhuǎn)區(qū)位碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#日期格式強制轉(zhuǎn)換方法(推薦)

    C#日期格式強制轉(zhuǎn)換方法(推薦)

    下面小編就為大家分享一C#日期格式強制轉(zhuǎn)換的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • c# 連接池的設置與使用

    c# 連接池的設置與使用

    這篇文章主要介紹了c# 連接池的設置與使用,幫助大家更好的理解和學習c#,感興趣的朋友可以了解下
    2021-01-01
  • C#代碼實現(xiàn)將Excel中的圖表轉(zhuǎn)換為圖片

    C#代碼實現(xiàn)將Excel中的圖表轉(zhuǎn)換為圖片

    圖表通常用于 Microsoft Excel 文件中,以可視化展示數(shù)值數(shù)據(jù),本文將演示如何使用 Spire.XLS for .NET,通過 C# 和 VB.NET 將 Excel 中的圖表轉(zhuǎn)換為圖片,感興趣的小伙伴可以了解下
    2025-12-12
  • WPF如何繪制光滑連續(xù)貝塞爾曲線示例代碼

    WPF如何繪制光滑連續(xù)貝塞爾曲線示例代碼

    貝塞爾曲線,又稱貝茲曲線或貝濟埃曲線,一般的矢量圖形軟件通過它來精確畫出曲線,下面這篇文章主要給大家介紹了關(guān)于WPF如何繪制光滑連續(xù)貝塞爾曲線的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2018-04-04
  • c#數(shù)據(jù)的序列化和反序列化(推薦版)

    c#數(shù)據(jù)的序列化和反序列化(推薦版)

    今天項目中用到了數(shù)據(jù)的序列化和反序列化,數(shù)據(jù)用的是EF自動生成的代碼
    2011-09-09
  • C#實現(xiàn)對象XML序列化的方法

    C#實現(xiàn)對象XML序列化的方法

    這篇文章主要介紹了C#實現(xiàn)對象XML序列化的方法,是C#常見的實用技巧,需要的朋友可以參考下
    2014-11-11
  • C#設計模式之職責鏈模式示例詳解

    C#設計模式之職責鏈模式示例詳解

    這篇文章主要給大家介紹了關(guān)于C#設計模式之職責鏈模式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • C# WinForm制作異形窗體與控件的方法

    C# WinForm制作異形窗體與控件的方法

    這篇文章主要介紹了C# WinForm制作異形窗體與控件的方法,結(jié)合實例形式分析了WinForm制作異形窗體與控件的原理、實現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • C#實現(xiàn)簡單合并word文檔的方法

    C#實現(xiàn)簡單合并word文檔的方法

    這篇文章主要介紹了C#實現(xiàn)簡單合并word文檔的方法,涉及C#針對word文檔的讀取、插入、保存等技巧,非常具有實用價值,需要的朋友可以參考下
    2015-09-09
  • C#編程中設置程序只可被運行一次的方法

    C#編程中設置程序只可被運行一次的方法

    這篇文章主要介紹了C#編程中設置程序只可被運行一次的方法,包括一種讓程序自動重啟以限制第二次被運行的方法,需要的朋友可以參考下
    2015-11-11

最新評論

伊宁市| 巫山县| 都安| 峨山| 鄢陵县| 鸡泽县| 登封市| 四子王旗| 定南县| 收藏| 菏泽市| 冕宁县| 贵州省| 新泰市| 扎赉特旗| 新安县| 铜鼓县| 伊川县| 淮滨县| 香港 | 黎平县| 桐梓县| 南川市| 台北市| 天台县| 涡阳县| 侯马市| 姚安县| 霞浦县| 永胜县| 乐东| 汶上县| 观塘区| 盐亭县| 那曲县| 阿拉善右旗| 池州市| 什邡市| 昌宁县| 石门县| 潞城市|