2020年10月19日
川俣晶の縁側ソフトウェアC# コーディング How To total 874 count

【入門級】大文字だけを取り出したい

Written By: 川俣 晶連絡先

大文字だけ判定できるか? §

 文字列の大文字小文字変換はToUpper系メソッドやToLower系メソッドを使えば容易です。

 では、大文字だけ抜き出して表示するような処理は簡単に書けるでしょうか?

 それには1文字単位で大文字を判定する必要があります。

 AからZまでの文字を調べても良いのですが、それだとアルファベットが27文字以上ある言語で破綻します。

 そういう場合にはChar.IsUpperメソッドを使って大文字かどうかを判定できます。

罠の数々 §

  • Char.IsUpperは国際化の影響を受けるので、アルファベットが27文字以上ある言語でも安全だ。一方で、国際化設定次第で判定結果が変化する可能性があるので、必ず同じ結果になるかどうかは分からない

参考リンク §

Char.IsUpper メソッド

 Char.IsUpper メソッドには文字列を対象にしたバリエーションもある。これを使って書き換えられないか検討してみよう。Char.IsUpper メソッドの詳細は上記リンクで確認できる。

リポジトリ §

https://github.com/autumn009/cshowto

UpperOnly §

using System;

class Program

{

    static void Main()

    {

        var s = "Jack Knife";

        foreach (var item in s)

        {

            if (Char.IsUpper(item)) Console.Write(item);

        }

        Console.WriteLine();

    }

}

実行結果

JK

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?