練習 - 使用 Remove() 和 Replace() 方法

已完成

在本練習中,您會使用 Remove() 方法來移除字串中的字元,並使用 Replace() 方法來取代字元。

但有時候,您會需要修改字串的內容,例如移除或取代字元。 雖然您可以使用已知的工具來取代字元,但這會需要一些暫時性的儲存,然後才能再將字串拼接回去。 幸運的是,string 資料類型有其他內建方法 (Remove()Replace()) 可以處理這些特殊案例。

使用 Remove() 方法

當您想要從字串中移除的字元有標準且一致位置時,通常會使用 Remove()

此練習的資料會儲存在具有固定長度的較舊檔案中,並針對特定資訊欄位配置字元位置。 其中前 5 個數字代表客戶識別碼。 後面的 20 個數字則會包含客戶名稱。 再接下來的 6 個位置代表客戶的最新發票金額,而最後 3 個位置代表該發票上訂購的項目數。

在下列步驟中,您會需要移除客戶的名稱來格式化資料,以便將資料傳送至個別處理序。 因為您知道使用者名稱的確切位置與長度,所以可以使用 Remove() 方法輕鬆地將其移除。

從字串中移除特定位置的字元

  1. 刪除或使用行註解運算子 //,將上一個練習中的所有程式碼標記為註解。

  2. 在 Visual Studio Code 編輯器更新您的程式碼,如下所示:

    string data = "12345John Smith          5000  3  ";
    string updatedData = data.Remove(5, 20);
    Console.WriteLine(updatedData);
    
  3. 在 Visual Studio Code 的 [檔案] 功能表上,選取 [儲存]。

    在建置或執行程式碼之前,必須先儲存 Program.cs 檔案。

  4. 在 [總管] 面板中,若要在 TestProject 資料夾位置開啟 [終端],請以滑鼠右鍵按一下 [TestProject],然後選取 [在整合式終端機中開啟]。

    終端窗格應開啟,且應包含命令提示字元,顯示已對 TestProject 資料夾位置開啟終端。

  5. 在終端命令提示字元中,若要執行程式碼,請輸入 dotnet run,然後按 Enter 鍵。

    您應該會看見下列輸出:

    123455000  3  
    

    Remove() 方法與 Substring() 方法相當類似。 您可以藉由提供起始位置與長度來從字串中移除這些字元。

使用 Replace() 方法

當您必須將一或多個字元取代為不同的字元 (或無字元) 時,可以使用 Replace() 方法。 Replace() 方法與您到目前為止所使用的其他方法不同,此方法會取代指定字元的每個執行個體,而非只有第一個或最後一個執行個體。

在字串中的任意位置移除字元

  1. 在 Visual Studio Code 編輯器更新您的程式碼,如下所示:

    string message = "This--is--ex-amp-le--da-ta";
    message = message.Replace("--", " ");
    message = message.Replace("-", "");
    Console.WriteLine(message);
    
  2. 儲存您的程式碼檔案,然後使用 Visual Studio Code 來執行程式碼。

    您應該會看見下列輸出:

    This is example data
    

    在這裡,您已使用 Replace() 方法兩次。 第一次,您將字串 -- 取代為空格。 第二次,您則將 - 字串取代為空字串,而這個動作會完全移除字串中的字元。

概括回顧

以下為需記住的兩個重點:

  • Remove() 方法與 Substring() 方法相當類似,不同之處在於其會刪除字串中的指定字元。
  • Replace() 方法會將字串中的所有執行個體交換為新字串。

檢定您的知識

1.

如果執行 message = message.Replace("B", "D"); 程式碼,其中 string message = "Big Dog";,則 message 的新值為何?