練習 - 探索 Split() 與 Join()
- 10 分鐘
隨著繼續為物流公司投入開發工作,您會開始一系列小型應用程式。 這些應用程式共同合作,從一個合作夥伴的系統中取得資料、修改資料,然後以所需的格式將其傳送到內部系統。
若要執行資料轉換,您必須以字串形式接受傳入的資料、將它剖析為較小的資料元素,然後操作它以符合所需的不同格式。 您應更如何將字串資料剖析為較小的資料元素?
字串資料類型的 Array 方法
類型為 string 的變數具有許多可將單一字串轉換為較小之字串陣列或個別字元陣列的內建方法。
當您處理來自其他電腦系統的資料時,有時候其格式或編碼並不符合您的用途。 在這些案例中,您使用 string 資料類型的 Array 方法將字串剖析為陣列。
使用 ToCharArray() 來反轉 string
刪除或使用行註解運算子
//,將上一個練習中的所有程式碼標記為註解。在 Visual Studio Code 編輯器更新您的程式碼,如下所示:
string value = "abc123"; char[] valueArray = value.ToCharArray();
在此範例中,ToCharArray() 方法可用來建立 char 的陣列,其中陣列的每個元素都代表原始字串的一個字元。
反轉,然後將字元陣列合併為新字串
接下來,陣列中字元的順序會被轉置,然後再使用 Write 方法將其合併回單一輸出。
在 Visual Studio Code 編輯器更新您的程式碼,如下所示:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);運算式
new string(valueArray)會建立System.String類別 (與 C# 中的string資料類型相同) 的新空白執行個體,並傳入字元陣列作為建構函式。注意
什麼是
new關鍵字?System.String類別如何與 C# 中的string資料類型相關? 什麼是建構函式? 這些問題都很棒,但不是此課程模組的涵蓋範圍。 我們建議您繼續學習 .NET 類別庫,以及 C# 中的類別與物件,以完全了解這個程式碼運算式背後的意義。 但現在,請使用搜尋引擎與 Microsoft 文件來尋找範例,以便在像這種您知道您要執行轉換但不確定如何使用 C# 來完成轉換的案例中使用。在 Visual Studio Code 的 [檔案] 功能表上,選取 [儲存]。
在建置或執行程式碼之前,必須先儲存 Program.cs 檔案。
在 [總管] 面板中,若要在 TestProject 資料夾位置開啟 [終端],請以滑鼠右鍵按一下 [TestProject],然後選取 [在整合式終端機中開啟]。
終端窗格應開啟,且應包含命令提示字元,顯示已對 TestProject 資料夾位置開啟終端。
在終端命令提示字元中,若要執行程式碼,請輸入 dotnet run,然後按 Enter 鍵。
注意
如果您看到訊息指出「找不到要執行的專案」,請確定終端命令提示字元會顯示預期的 TestProject 資料夾位置。 例如:
C:\Users\someuser\Desktop\csharpprojects\TestProject>您應該會看見下列輸出:
321cba
使用 Join() 將所有字元合併為新的以逗點分隔值的字串
在某些情況下,您可能需要使用逗號分隔字元陣列的每個元素,這是處理以 ASCII 文字表示的資料時常見的做法。 若要這樣做,您要將在步驟 2 中新增的程式碼註解化,然後使用 String 類別的 Join() 方法,傳入您想要分隔每個區段的字元 (逗號) 與陣列本身。
在 Visual Studio Code 編輯器更新您的程式碼,如下所示:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);儲存您的程式碼檔案,然後使用 Visual Studio Code 來執行程式碼。
您應該會看見下列輸出:
3,2,1,c,b,a
Split() 逗號分隔值字串到字串陣列
若要完成程式碼,會使用 Split() 方法。 此方法專為類型 string 的變數設計,並建立一個字串陣列。
使用 Visual Studio Code 編輯器,在檔案底部新增下列幾行程式碼:
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }請花一分鐘的時間檢閱先前的程式碼。
會將逗號作為分隔字元提供給
.Split(),以將一個長字串分割為較小的字串。 然後,程式碼會使用foreach迴圈,逐一查看新建立字串陣列 (items) 的每個元素。檢查程式碼現在是否如下所示:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }儲存您的程式碼檔案,然後使用 Visual Studio Code 來執行程式碼。
執行程式碼時,您會看到下列輸出:
3,2,1,c,b,a 3 2 1 c b a使用
items建立的string[] items = result.Split(',');陣列會用於foreach迴圈中,並顯示string變數中包含之原始value的個別字元。
概括回顧
以下是處理字串與陣列時最需要牢記的幾個要點:
- 若要建立陣列,請使用
ToCharArray()和Split()等方法 - 若要將陣列變回單一字串,請使用
Join()之類的方法,或建立一個新的字串,並傳入char的陣列
檢定您的知識
意見反應
此頁面對您有幫助嗎?
No
需要本主題的協助嗎?
想要嘗試使用 Ask Learn 來釐清或引導您完成本主題嗎?