演習 - Remove() メソッドと Replace() メソッドを使用する
- 8 分
この演習では、 Remove() メソッドを使用して文字列から文字を削除し、 Replace() メソッドを使用して文字を置き換えます。
場合によっては、文字列の内容を変更したり、文字を削除または置換したりする必要があります。 文字は既に知っているツールに置き換えることができますが、文字列を一時的に格納して結合する必要があります。 幸いにも、 string データ型には、これらの特殊なシナリオに対する他の組み込みメソッド ( Remove() と Replace()) があります。
Remove() メソッドを使用する
通常、文字列から削除する文字の標準的で一貫性のある位置がある場合は、 Remove() を使用します。
この演習では、固定長の古いファイルにデータを格納し、特定の情報フィールドに割り当てられた文字位置を使用します。 最初の 5 桁は、顧客 ID 番号を表します。 次の 20 桁の数字には、顧客の名前が含まれます。 次の 6 つのポジションは顧客の最新の請求書金額を表し、最後の 3 つのポジションはその請求書で注文されたアイテムの数を表します。
次の手順では、顧客の名前を削除して、データを別のプロセスに送信できるように書式設定する必要があります。 ユーザーの名前の正確な位置と長さがわかっているので、 Remove() メソッドを使用して簡単に削除できます。
文字列から特定の場所の文字を削除する
前の演習のコードをすべて削除するか、行コメント演算子
//を使ってコメントアウトしてください。Visual Studio Code エディターで次のようにコードを更新します。
string data = "12345John Smith 5000 3 "; string updatedData = data.Remove(5, 20); Console.WriteLine(updatedData);[Visual Studio Code ファイル ] メニューの [ 保存] を選択します。
コードをビルドまたは実行する前に、Program.cs ファイルを保存する必要があります。
[エクスプローラー] パネルで、TestProject フォルダーの場所にあるターミナルを開くには、[ TestProject] を右クリックし、[ 統合ターミナルで開く] を選択します。
ターミナル パネルが開き、ターミナルが TestProject フォルダーの場所に対して開かれていることを示すコマンド プロンプトが含まれているはずです。
ターミナル コマンド プロンプトで、コードを実行するには、「 dotnet run 」と入力し、Enter キーを押します。
次の出力が表示されます。
123455000 3Remove()メソッドは、Substring()メソッドと同様に動作します。 開始位置と長さを指定して、文字列からそれらの文字を削除します。
Replace() メソッドを使用する
Replace() メソッドは、1 つ以上の文字を別の文字 (または文字なし) に置き換える必要がある場合に使用されます。
Replace()メソッドは、これまでに使用した他のメソッドとは異なり、最初または最後のインスタンスだけでなく、指定された文字のすべてのインスタンスを置き換えます。
文字列内の文字がどこに表示されているかに関係なく、文字を削除する
Visual Studio Code エディターで次のようにコードを更新します。
string message = "This--is--ex-amp-le--da-ta"; message = message.Replace("--", " "); message = message.Replace("-", ""); Console.WriteLine(message);コード ファイルを保存してから、Visual Studio Code を使ってコードを実行します。
次の出力が表示されます。
This is example dataここでは、
Replace()メソッドを 2 回使用しました。 文字列--をスペースに置き換えたのは初めてです。 2 回目は、文字列-を空の文字列に置き換えたので、文字列から文字が完全に削除されます。
まとめ
以下の 2 点を気に留めることが重要です。
-
Remove()メソッドは、文字列内の指定した文字を削除する点を除き、Substring()メソッドと同様に動作します。 -
Replace()メソッドは、文字列のすべてのインスタンスを新しい文字列にスワップします。