六、C#入門—字元與字元串

来源:https://www.cnblogs.com/Just-a-calm-programmer/archive/2020/04/08/12654772.html
-Advertisement-
Play Games

六、C#字元與字元串 6.1.字元與轉義字元 1)定義 char類結構表示unicode字元。可以用來定義單個中文字元 2)方法 char c1 = 'a'; char c2 = '0'; char c3 = 'A'; Console.WriteLine(char.IsLetter(c1)); // ...


六、C#字元與字元串

  6.1.字元與轉義字元

    1)定義

      char類結構表示unicode字元。可以用來定義單個中文字元

    2)方法     

        char c1 = 'a';
            char c2 = '0';
            char c3 = 'A';

            Console.WriteLine(char.IsLetter(c1));           //判斷是否是字母
            Console.WriteLine(char.IsDigit(c2));            //判斷是否是數字
            Console.WriteLine(char.IsLetterOrDigit(c1));    //判斷是否是字母或數字
            Console.WriteLine(char.IsLower(c1));            //判斷是否小寫
            Console.WriteLine(char.IsUpper(c3));            //判斷是否大寫
            Console.WriteLine(char.IsPunctuation(c1));      //判斷是否是標點
            Console.WriteLine(char.IsSeparator(c1));        //判斷是否是分隔符
            Console.WriteLine(char.IsWhiteSpace(c1));       //判斷是否是空格
            Console.WriteLine(char.ToLower(c3));            //轉換成小寫
            Console.WriteLine(char.ToUpper(c1));            //轉換成大寫
            Console.ReadLine();

    3)轉義字元

       

  6.2.字元串

    字元串是System.String類的一個引用類型,可以將String類型變數看成是char類型的只讀數組

    1)字元集和字元編碼

      ASCII碼、GB2312、Unicode、UTF-8等

      ASCII '0'=48 '65'=A 'a'=97  

  6.3.字元串操作

    方法分為靜態方法和非靜態方法

    靜態:string.方法    非靜態:str.方法

        //6.3.字元串大小寫轉換
            string name = "jAcK";
            Console.WriteLine(name.ToLower());//轉換成小寫
            Console.WriteLine(name.ToUpper());//轉換成大寫

            //6.4.字元串比較
            string str1 = "Hello";
            string str2 = "HEllo";
            Console.WriteLine(str1 == str2);
            Console.WriteLine(string.Equals(str1, str2));
            Console.WriteLine(string.Compare(str1, str2));      //>0:str1>str2 =0:str1=str2 <0:str1<str2
            Console.WriteLine(string.Compare(str1, str2, true));//忽略大小寫
            Console.WriteLine(str1.CompareTo(str2));            //>0:str1>str2 =0:str1=str2 <0:str1<str2
            
            //小寫不應該大於大寫嗎,有點奇怪!!

            //6.5.字元串格式化
            string str3 = string.Format("hello {0}," + "I am {1}.", "world", "Hecarim");
            Console.WriteLine(str3);
            str3 = string.Format("{0:D3}", 1);     //填充成3位 -> 001
            Console.WriteLine(str3);
            str3 = string.Format("{0:F3}", 1.2345);//保留三位小數
            Console.WriteLine(str3);

            //6.6.字元串截取
            string str4 = "Hecarim";                    //字元串索引從0開始
            Console.WriteLine(str4.Substring(2));       //第2個開始截取 -> carim
            Console.WriteLine(str4.Substring(2, 2));    //第2個開始截取,長度為2 -> ca

            //6.7.字元串分割
            string str5 = "I-am-Hecarim=18";
            string[] splitStr = str5.Split('-');            //以'-'分割字元串
            foreach (string item in splitStr) Console.Write(item + "\t");
            //splitStr = str5.Split(new char[] { '-', '=' }); //以'-','='分割字元串
            splitStr = str5.Split("-=".ToCharArray()); //以'-','='分割字元串
            foreach (string item in splitStr) Console.Write(item + "\t");
            Console.WriteLine();

            //6.8.字元串合併
            string str6 = "hello";
            string str7 = "world";
            Console.WriteLine(str6 + str7);
            Console.WriteLine(string.Concat(str6, str7));   //合併str6 str7
            Console.WriteLine(string.Concat(splitStr));     //合併splitStr中的所有string
            Console.WriteLine(string.Join("-", splitStr));  //以'-'合併splitStr中的所有string

            //6.9.字元串插入填充
            string str8 = "Hecarm";
            Console.WriteLine(str8.Insert(5, "i"));         //"i"插入到索引為5的位置
            Console.WriteLine(str8.PadLeft(10));            //左填充成長度為10,預設是空格
            Console.WriteLine(str8.PadRight(10, '*'));      //右填充成長度為10,用'*'填充,預設是空格

            //6.10.字元串刪除
            string str9 = "HecarimzzZ";
            Console.WriteLine(str9.Remove(7));              //移除索引為7之後的字元
            Console.WriteLine(str9.Remove(7, 2));           //移除索引為7之後的2個字元

            //6.11.字元串修剪
            string str10 = "   Hecarim   ";
            Console.WriteLine(str10.Trim() + "|");          //修剪前後空格
            Console.WriteLine(str10.TrimStart() + "|");     //修剪前空格
            Console.WriteLine(str10.TrimEnd() + "|");       //修剪後空格
            string str11 = "&#&#Hecarim*#$*$";
            Console.WriteLine(str11.Trim('$', '&'));                    //修剪前後的'$','&'
            Console.WriteLine(str11.Trim("&#*$".ToCharArray()));        //修剪前後的'$','&','*','#'

            //6.12.字元串複製
            string str12 = "vincent";
            Console.WriteLine(string.Copy(str12));
            char[] str13 = new char[20];
            str12.CopyTo(3, str13, 0, 4);                   //指定位置複製
            Console.WriteLine(str13);

            //6.13.字元串替換
            string str14 = "hello";
            Console.WriteLine(str14.Replace('h', 'H'));     //將'h'替換成'H'

            //6.14.字元串查找
            string str15 = "hello world";
            Console.WriteLine(str15.IndexOf("wor"));        //返回"wor"第一次出現的索引
            Console.WriteLine(str15.LastIndexOf("wor"));    //返回"wor"最後一次出現的索引
Console.ReadKey();

  6.15.類型轉換

    1)轉換形式

      隱式轉換:是系統自發的,不需要我們進行干預,也不需要我們進行額外的編碼

      顯示轉換:強制轉換

            //類型轉換
            int num1 = 65;
            string str16 = "97";
            Console.WriteLine(checked((char)num1));         //強制轉換,checked()檢查變數是否溢出
            Console.WriteLine(Convert.ToString(num1));
            Console.WriteLine(num1.ToString()); 
            Console.WriteLine(int.Parse(str16));

    2)區別

      (int)強制轉換

       不進行四捨五入 

      Convert.ToInt32()  

       可以將空值NULL轉換成0

       0-4:直接捨棄

       5:返回一個臨近的偶數

       6-9:進位

      int.Parse()

       不能將空值NULL轉換成0 

       只能轉String類 

  6.17.StringBuilder類

    1)作用

      在使用System.String類中的方法時,都要在記憶體中創建一個新的字元串對象,這就需要為該新對象分配新的空間。

      在需要重覆使用的情況下,創建新的String對象相關的系統開銷就可能非常高

    2)使用

      引入System.Text的命名空間

      通過new關鍵字初始化,eg:StringBuilder stBuilder = new StringBuilder("Hecarim");

      使用方法與String類相同   

    3)方法

      Append、AppendLine、AppendFormat ...

    

        


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • java的訪問許可權 一、訪問許可權 1. 許可權簡介 java有四種訪問許可權:public > protected > default > private。 註:protected、private不能修飾類,private不能修飾抽象方法。 2. 許可權詳情 public 所修飾的成員,在任何位置均可被訪 ...
  • *.sql文件導入資料庫通常比較方便。 其他格式如csv、xsl等文件導入比較費勁。 推薦一個針對csv\xsl的導入工具:https://github.com/zhengze/file_to_db.git 如果文件第一行是table的欄位名,自動建表+導入數據,實在是省事。 具體用法請看READM ...
  • 在我的工作經驗中,在C#語言本身的學習上花了大量的時間,積累了一些經驗,一些是在學習和工作中遇到的問題和解決辦法分享出來,希望大家也能有收穫。有些表述錯誤的地方,也希望及時指正。 (一)VSExxx.dll的使用 程式的運行以平臺系統位數不匹配,64位系統上C#調用32位的C++ *.dll,其原因 ...
  • 1 前言 之前的幾篇文章介紹了Lambda和Linq的一些支持方法。這一篇我嘗試通過模擬具體的業務場景來描述一下Linq的兩種查詢方式的使用。 一直提的Linq查詢方式分為兩種,一種就是方法鏈的形式,官方的稱呼是流式查詢;另一種是類似於SQL語句的查詢方式,我之前叫做類SQL查詢方式,不過有的文檔稱 ...
  • 多線程調用,任務線程拋出異常如何在另一個線程(調用線程)中捕獲併進行處理的問題。 ...
  • 用戶控制項的目標是提供增補控制項模板的設計錶面,提供一種定義控制項的快速方法,代價是失去了將來的靈活性。如果喜歡用戶控制項的功能,但需要修改使其可視化外觀,使用這種方法就有問題了。例如,設想希望使用相同的顏色拾取器,但希望使用不同的“皮膚”,將其更好地融合到已有的應用程式視窗中。可以通過樣式來改變用戶控制項的 ...
  • 一般情況之下,我們只需要傳遞驗證值本身向服務端即可。 但是,Insus.NET所遇上的問題是,得傳遞其它值一起POST至服務端來驗證。 自定義指令Directive: Html 代碼: ...
  • 一、環境準備 假設有兩台伺服器: 註意事項: 1)所有伺服器的Erlang及RabbitMQ版本必須一樣。 2)伺服器名大小寫敏感。 二、開始搭建 2.1、設置hosts文件 路徑如下:C:\Windows\System32\drivers\etc 在hosts文件中添加主機及備機的IP地址及電腦 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...