C#で文字列内の特定の文字を変更する方法
C#では、string型は不変(イミュータブル)であるため、文字列の一部を直接書き換えることはできません。そこで活躍するのが StringBuilder クラスです。StringBuilder を使えば、インデックスを指定して文字を自由に変更できます。
StringBuilderの準備
まず、変更対象となる文字列を StringBuilder に格納します。ここでは「pre」という文字列を使用します。
StringBuilder str = new StringBuilder();
str.Append("pre");指定した位置の文字を変更する
文字を変更するには、変更したいインデックスに対して新しい文字を代入するだけです。インデックスは0から始まるため、3番目の文字を変更する場合はインデックス「2」を指定します。
str[2] = 'o';
このコードにより、「pre」の3番目の文字「e」が「o」に置き換わり、「pro」という文字列になります。
サンプルコード全体
以下に、上記の処理を実行する完全なプログラムを示します。
using System;
using System.Text;
public class Demo {
public static void Main() {
StringBuilder str = new StringBuilder();
str.Append("pre");
Console.WriteLine("String : " + str);
Console.WriteLine("Change 3rd character");
str[2] = 'o';
Console.WriteLine("New String : " + str);
}
}実行結果
String : pre Change 3rd character New String : pro
ポイントまとめ
- string型は不変:通常の文字列は後から変更できないため、
StringBuilderを使うのが一般的です。 - インデックスは0始まり:3番目の文字を変更するには、
str[2]のようにインデックス2を指定します。 - 頻繁な文字列操作に最適:文字列の結合や変更を繰り返す場合、
StringBuilderを使うとパフォーマンスが向上します。
-
Pythonで文字列からn番目の文字を削除するプログラムの書き方
はじめにこの記事では、以下の問題に対する解決方法を解説します。問題文 − 与えられた文字列から、指定したインデックス(i番目)の文字を削除し、その結果を表示します。Pythonの文字列では、インデックスは必ず0から始まるという点に注意してください。例えば、「Tutorialspoint」という文字列の場合、各文字のインデックスは以下のように対応しています。T u t o r i a l s p o i n t 0 1 2 3 4 5 6 7 8 9 10 11 12 13それでは、この問題を解決するためのPythonスクリプトを見ていきましょう。実装例def remove(string
-
Pythonで文字列からn番目の文字を削除する方法【サンプルコード付き】
Pythonにおいて、文字列は文字の配列として扱われます。そのため、先頭の文字のインデックスは「0」から始まり、各文字の位置(インデックス)を簡単に取得できます。この性質を利用すると、指定したn番目の文字だけを削除することが可能です。 基本的な考え方はシンプルです。削除したい文字のインデックス番号を受け取り、元の文字列を次の2つの部分文字列に分割します。 n番目のインデックスの文字より前の部分 n番目のインデックスの文字より後の部分 その後、この2つの部分文字列を連結すれば、n番目の文字が取り除かれた新しい文字列が完成します。 実行例 入力: python 削除するインデックス: 3 出