C#のStringBuilderでRemove()メソッドを使って指定インデックスから文字範囲を削除する方法
C#では、StringBuilderクラスのRemove()メソッドを使用することで、指定したインデックス位置から文字の範囲を簡単に削除できます。
Remove()メソッドの基本構文
Remove(開始インデックス, 削除する文字数)
- 第1引数:削除を開始する位置(0から始まるインデックス)
- 第2引数:削除する文字数
使用例
例えば、次のような文字列があるとします。
StringBuilder myStr = new StringBuilder("Framework");この文字列から末尾の4文字("work")を削除したい場合は、以下のようにRemove()メソッドを呼び出します。
myStr.Remove(5, 4);
これは「インデックス5の位置から4文字分を削除する」という意味になります。
サンプルコード全体
using System;
using System.Text;
public class Program {
public static void Main() {
StringBuilder myStr = new StringBuilder("Framework");
Console.WriteLine("Initial String: " + myStr);
// インデックス5から4文字を削除
Console.Write("New string: ");
myStr.Remove(5, 4);
Console.WriteLine(myStr);
}
}実行結果
Initial String: Framework New string: Frame
ポイント
StringBuilderは可変(ミュータブル)な文字列を扱うため、string型のように新しいオブジェクトを生成することなく、その場で文字列を変更できます。頻繁に文字列の編集や削除を行う場合には、パフォーマンス面でも有利です。また、指定したインデックスが文字列の長さを超える場合はArgumentOutOfRangeExceptionがスローされるため、事前に文字列の長さを確認しておくと安全です。
-
Pythonで指定したインデックスの文字を置き換える方法
Pythonでは、文字列 s、インデックス i、置き換えたい文字 c が与えられたときに、s の i 番目の文字を c で置き換えたいという場面があります。文字列はイミュータブル(変更不可)である点に注意Pythonにおいて文字列はイミュータブル(immutable)なオブジェクトです。そのため、次のように直接代入しようとするとエラーが発生します。s[i] = c # TypeError: str object does not support item assignmentこのエラーは「str オブジェクトは要素への代入をサポートしていない」ことを意味します。つまり、リストとは異なり、文字
-
【Python】文字列から奇数インデックスの文字を削除するプログラムの書き方
概要文字列から奇数インデックス(1、3、5…番目)の文字を削除したい場合は、文字列を引数として受け取る関数を定義するのが基本です。この記事では、whileループを使った実装方法とその動作を、サンプルコードと実行結果をもとにわかりやすく解説します。サンプルコードdef remove_odd_index_characters(my_str): new_string = "" i = 0 while i < len(my_str):