C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のStringクラスの主なプロパティ(Chars・Length)の使い方を実例で解説


C#のStringクラスには、文字列の情報を取得したり、個々の文字にアクセスしたりするための便利なプロパティが用意されています。ここでは、特によく使われる2つのプロパティをご紹介します。

番号プロパティと説明
1Chars
現在のStringオブジェクト内の指定した位置にあるCharオブジェクトを取得します。インデックスは0から始まるため、最初の文字は str[0] でアクセスできます。
2Length
現在のStringオブジェクトに含まれる文字数を取得します。空文字列の場合は0が返ります。

サンプルコード1

まずは、IsNullOrEmptyメソッド、文字列の比較、そしてLengthプロパティとChars(インデクサ)を組み合わせた例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      string str1 = "h8b9";
      string str2 = "abcdef";
      Console.WriteLine("string1はnullまたは空か? = "+string.IsNullOrEmpty(str1));
      Console.WriteLine("string2はnullまたは空か? = "+string.IsNullOrEmpty(str2));
      bool val = str1 != str2;
      Console.WriteLine("str1とstr2は異なるか? = "+val);
      for (int i = 0; i < str1.Length; i++) {
         if (Char.IsLetter(str1[i]))
            Console.WriteLine(""+str1[i]+" は英字です");
         else
            Console.WriteLine(""+str1[i]+" は数字です");
      }
   }
}

実行結果1

上記のプログラムを実行すると、次のような出力が得られます。

string1はnullまたは空か? = False
string2はnullまたは空か? = False
str1とstr2は異なるか? = True
h は英字です
8 は数字です
b は英字です
9 は数字です

この例では、forループの中でstr1[i]という形式でCharsプロパティ(インデクサ)を使い、各位置の文字を1つずつ取り出しています。さらにChar.IsLetterメソッドでその文字が英字かどうかを判定し、英字でなければ数字として表示しています。

サンプルコード2

続いて、IsNullOrWhiteSpaceメソッドとLengthプロパティの動作を確認する例です。

using System;
public class Demo {
   public static void Main() {
      string str1 = "hijklm";
      string str2 = String.Empty;
      Console.WriteLine("string1はnull・空・空白のみか? = "+String.IsNullOrWhiteSpace(str1));
      Console.WriteLine("string2はnull・空・空白のみか? = "+String.IsNullOrWhiteSpace(str2));
      Console.WriteLine("string1の長さ = "+str1.Length);
      Console.WriteLine("string2の長さ = "+str2.Length);
      Console.WriteLine("文字列リテラルの長さ = "+"demo".Length);
   }
}

実行結果2

上記のプログラムを実行すると、次のような出力が得られます。

string1はnull・空・空白のみか? = False
string2はnull・空・空白のみか? = True
string1の長さ = 6
string2の長さ = 0
文字列リテラルの長さ = 4

String.Emptyは空文字列(長さ0の文字列)を表すため、IsNullOrWhiteSpaceはTrueを返し、Lengthも0になります。また、変数だけでなく"demo".Lengthのように文字列リテラルに対して直接プロパティを呼び出すことも可能です。

まとめ

StringクラスのCharsプロパティを使えば文字列中の任意の位置にある文字を取得でき、Lengthプロパティを使えば文字数を簡単に調べられます。この2つはC#における文字列処理の基本となるため、サンプルコードを実際に動かしながら、しっかり理解しておきましょう。

  1. Pythonで指定した長さのランダム文字列を生成する方法

    この記事では、Pythonで指定した長さのランダムな文字列を生成する方法を解説します。ランダムなパスワードの作成や、ランダム性が求められるさまざまなプログラムで活用できる基本的なテクニックです。random.choices() を使う方法randomモジュールのchoices()関数は、指定した文字セットからランダムに文字を選び出します。string.ascii_letters(英大文字・小文字)とstring.digits(数字)を組み合わせた文字セットから選択し、join()メソッドで連結することで、目的の長さの文字列を作成できます。サンプルコードimport string import

  2. Pythonでランレングスエンコーディングを実装する方法

    このチュートリアルでは、Pythonを使ってランレングスエンコーディング(Run-Length Encoding)を作成する方法を解説します。与えられた文字列に対して、「文字+出現回数」という形式の新しい文字列を生成して返すプログラムです。例えば、文字列 tutorialspoint は t3u1o2r1i2a1l1s1p1n1 とエンコードされます。これは各文字とその出現回数を順に連結したもので、元の文字列に最初に出現した順序が保たれます。実装の手順run_length_encoding という名前の関数を定義します。collections.OrderedDict を使い、各文字のカウントを