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

C#で文字列に含まれる大文字と小文字の数をカウントするプログラム

C#で文字列内の大文字・小文字をそれぞれカウントするには、各文字を1つずつ判定していくのが基本です。ここでは、その具体的な実装方法をサンプルコード付きで解説します。

大文字を判定する条件

文字列の中から大文字(A〜Z)を見つけるには、以下の条件式を使用します。

myStr[i] >= 'A' && myStr[i] <= 'Z'

小文字を判定する条件

同様に、小文字(a〜z)を判定する場合は次の条件式を使います。

myStr[i] >= 'a' && myStr[i] <= 'z'

サンプルコード

以下のコードを実行すると、指定した文字列に含まれる大文字と小文字の数をそれぞれ出力できます。forループで文字列を先頭から順番に走査し、条件に一致した場合にカウンターを増やしています。

using System;
public class Demo {
    public static void Main() {
        string myStr;
        int i, len, lower_case, upper_case;
        
        myStr = "Hello";
        Console.Write("String: " + myStr);
        
        lower_case = 0;
        upper_case = 0;
        len = myStr.Length;
        
        for(i = 0; i < len; i++) {
            if(myStr[i] >= 'a' && myStr[i] <= 'z') {
                lower_case++;
            } else if(myStr[i] >= 'A' && myStr[i] <= 'Z') {
                upper_case++;
            }
        }
        
        Console.Write("\nCharacters in lowercase: {0}\n", lower_case);
        Console.Write("Characters in uppercase: {0}\n\n", upper_case);
    }
}

実行結果

上記のプログラムを実行すると、次のような結果が表示されます。例として使用した「Hello」は、小文字が4文字(e, l, l, o)、大文字が1文字(H)であることが確認できます。

String: Hello
Characters in lowercase: 4
Characters in uppercase: 1

補足:char.IsUpper / char.IsLower を使う方法

ASCII範囲の比較以外にも、.NET標準のメソッド char.IsUpper()char.IsLower() を使えば、より簡潔かつ安全に判定できます。これらのメソッドはカルチャ(文化情報)にも対応しているため、国際化を考慮したアプリケーションではこちらの利用が推奨されます。

  1. 組み込み関数を使わずにPythonで大文字・小文字の文字数をカウントする方法

    はじめに 本記事では、以下の問題に対する解決策について詳しく解説します。 問題文 文字列が与えられたとき、組み込みの文字判定関数を使用せずに、その文字列に含まれる大文字と小文字の数をそれぞれカウントする必要があります。 通常、この問題はPythonに標準で用意されている islower() や isupper() を使えば簡単に解決できます。しかし今回は「これらの文字判定関数を使わない」という制約があるため、文字のASCIIコード値を活用したアプローチを採用します。 ord() 関数を使うことで、文字列内の各文字のASCIIコード値を取得できます。取得した値が小文字の範囲(97〜122)

  2. 組み込み関数を使わずに大文字・小文字をカウントするPythonプログラム

    この記事では、文字列に含まれる大文字と小文字の数を数える問題を、組み込みの文字判定メソッドに頼らずに解くための考え方と実装方法を解説します。 問題の概要 文字列が入力として与えられたとき、その中に含まれる大文字の数と小文字の数をそれぞれ求める必要があります。 ここでは、isupper() や islower() のような文字判定メソッドは使わず、組み込み関数 ord() を利用して各文字のASCII値を調べることで判定を行います。 ASCII値による判定の考え方 ASCIIコードでは、英字は次のような範囲に割り当てられています。 小文字(a〜z):97〜122 大文字(A〜Z):65〜90