C#のStringBuilder.Chars[]プロパティとは?使い方とサンプルコードを解説
C#のStringBuilder.Chars[]プロパティは、StringBuilderインスタンス内の指定した位置にある文字を取得または設定するためのインデクサーです。文字列操作において、特定の文字に直接アクセスしたい場合に非常に便利な機能です。
構文
Chars[]プロパティの構文は以下のとおりです。
public char this[int index] { get; set; }パラメータ index には、取得または設定したい文字の位置(0から始まるインデックス)を指定します。
使用例1:文字列内の数字をカウントする
まず、Chars[]プロパティを使って文字列内の数字の個数を数える例を見てみましょう。
using System;
using System.Text;
public class Demo {
public static void Main() {
StringBuilder strBuilder = new StringBuilder("ghgh78hkjj");
int num = 0;
for (int i = 0; i < strBuilder.Length; i++) {
char c = strBuilder[i];
if (Char.IsDigit(c))
num++;
}
Console.WriteLine("String = "+strBuilder);
Console.WriteLine("Numbers in the string = "+num);
}
}出力結果
上記のコードを実行すると、次のような出力が得られます。
String = ghgh78hkjj Numbers in the string = 2
この例では、forループでインデックス0から順番に各文字へアクセスし、Char.IsDigit()メソッドでその文字が数字かどうかを判定しています。文字列「ghgh78hkjj」には「7」と「8」の2つの数字が含まれているため、結果は2となります。
使用例2:指定位置の文字を取得する
続いて、特定のインデックス位置にある文字を直接取得する例を見てみましょう。
using System;
using System.Text;
public class Demo {
public static void Main() {
StringBuilder strBuilder = new StringBuilder("ghgh78hkjj");
char c = strBuilder[3];
Console.WriteLine("String = "+strBuilder);
Console.WriteLine("Character = "+c);
}
}出力結果
上記のコードを実行すると、次のような出力が得られます。
String = ghgh78hkjj Character = h
この例では、インデックス3(4番目の文字)にアクセスしているため、「h」が出力されます。このように、配列と同じ感覚で角括弧([ ])を使ってStringBuilder内の任意の文字にアクセスできるのがChars[]プロパティの特徴です。
まとめ
StringBuilder.Chars[]プロパティを使用すると、可変文字列であるStringBuilderオブジェクトに対して、読み取りだけでなく書き込みも行えます。例えば、strBuilder[0] = 'a';のように記述すれば、指定位置の文字を別の文字に置き換えることも可能です。文字列の一部だけを効率的に操作したい場合に、ぜひ活用してみてください。
-
【C#】Console.KeyAvailableプロパティの使い方とサンプルコード
Console.KeyAvailableプロパティとはC#のConsole.KeyAvailableプロパティは、標準入力ストリームにキー入力が利用可能かどうかを示す値を取得するためのプロパティです。戻り値はbool型で、キー入力があればtrue、なければfalseを返します。このプロパティは読み取り専用(getのみ)であり、Console.ReadKey()メソッドと組み合わせることで、処理をブロックすることなくキー入力の有無を確認しながらループ処理を実装できます。構文public static bool KeyAvailable { get; }使用例1:キー入力を検出して表示する以下は、
-
C#でStringBuilderをクリアする方法(Clearメソッドの使い方)
C#でStringBuilderの中身をクリア(空に)したい場合は、Clear()メソッドを使います。このメソッドを呼び出すと、文字列の内容がすべて削除され、長さは0になります。StringBuilderの準備まず、次のようなStringBuilderを用意します。string[] myStr = { One, Two, Three, Four }; StringBuilder str = new StringBuilder(We will print now...).AppendLine();Clear()メソッドでクリアするStringBuilderをクリアするには、以下のようにClear