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

C#で文字列に特殊文字が含まれているかどうかを確認する方法

文字列の中に特殊文字(記号など)が含まれているかどうかを確認するには、C#の Char.IsLetterOrDigit メソッドを使用します。このメソッドは、指定された文字が英字または数字であるかどうかを判定するもので、forループ内で各文字に対して呼び出すことで、特殊文字の有無を効率的にチェックできます。

基本的な考え方

まず、チェック対象となる文字列を用意します。ここでは例として次の文字列を使用します。

string str = "Amit$#%";

次に、この文字列を ToCharArray() メソッドを使って文字配列に変換します。これにより、1文字ずつ順番に処理できるようになります。

str.ToCharArray();

その後、forループで各文字を走査し、Char.IsLetterOrDigit() メソッドを使って英数字以外の文字(つまり特殊文字)を検出します。検出された特殊文字は別の配列に格納していきます。

サンプルコード

以下に完全なプログラムを示します。

using System;
namespace Demo {
    class myApplication {
        static void Main(string[] args) {
            string str = "Amit$#%";
            char[] one = str.ToCharArray();
            char[] two = new char[one.Length];
            int c = 0;
            for (int i = 0; i < one.Length; i++) {
                if (!Char.IsLetterOrDigit(one[i])) {
                    two[c] = one[i];
                    c++;
                }
            }
            Array.Resize(ref two, c);
            Console.WriteLine("以下が特殊文字です:");
            foreach(var items in two) {
                Console.WriteLine(items);
            }
            Console.ReadLine();
        }
    }
}

実行結果

このプログラムを実行すると、文字列「Amit$#%」から英数字以外の文字だけが抽出され、次のように出力されます。

以下が特殊文字です:
$
#
%

補足

Char.IsLetterOrDigit メソッドは、引数として渡された文字がUnicodeのカテゴリ上「字母(Letter)」または「10進数(Decimal Digit)」に分類される場合に true を返します。したがって、$#% のような記号はすべて false となり、特殊文字として判定されます。

なお、空白文字も特殊文字として扱われる点に注意してください。もし空白を除外したい場合は、条件に !Char.IsWhiteSpace(one[i]) を追加するなどの工夫が必要です。また、正規表現(System.Text.RegularExpressions.Regex)を使えば、より柔軟なパターンマッチングによるチェックも可能です。

  1. Swiftで文字列が別の文字列を含んでいるか確認する方法

    Swiftである文字列に別の文字列が含まれているかどうかを確認するには、2つの異なる文字列が必要です。1つは検索対象となる文字列、もう1つはその中に特定の文字列が含まれているかを調べる元となる文字列です。 ここでは、確認したい文字列を「point」、全体の文字列を「TutorialsPoint」、そして別の文字列として「one two three」を使用して説明します。Playgroundでこれらの文字列を使って実際に確認してみましょう。 この確認は、以下に示す2つの方法で行うことができます。まずは3つの異なる文字列を作成します。 var completeStr1 = Tutorials po

  2. 【Python】文字列がすべてユニークな文字で構成されているか判定する方法

    本記事では、与えられた文字列に含まれる文字がすべて一意(ユニーク)であるかどうかを判定するPythonプログラムについて、その解法とアプローチをわかりやすく解説します。 問題の概要 文字列が入力として与えられたとき、その文字列に含まれるすべての文字が重複なく一意であるかどうかを判定します。たとえば「abcde」はすべて異なる文字で構成されているためTrue、「tutorialspoint」のように同じ文字が複数回出現する場合はFalseとなります。 アプローチ この問題は、以下のような手順で効率的に解くことができます。 ブール値の配列を用意する: 各インデックス i が「アルファベット(AS