C#で文字列に含まれるすべての母音をチェックするプログラムの書き方
C#で文字列に含まれるすべての母音を確認するには、LINQの Where メソッドと Contains メソッドを組み合わせるのが最もシンプルで効率的な方法です。まず、対象の文字列から母音だけを抽出する条件を設定します。
var res = str.Where(chk => "aeiouAEIOU".Contains(chk)).Distinct();
ここでは、次のような英文(すべてのアルファベットを含むパングラム)を対象としています。
string str = "the quick brown fox jumps over the lazy dog";
Where メソッドで大文字・小文字の母音のみを絞り込み、Distinct() によって重複を除去しています。
母音の有無を判定する
Any() メソッドを使えば、抽出した結果に母音が1つでも存在するかどうかを簡単にチェックできます。結果が空の場合は「母音なし」というメッセージを表示するようにします。
if (!res.Any())
Console.WriteLine("No vowels!");
最後に、foreach ループで文字列を走査し、見つかった母音をすべて出力します。
サンプルコード
using System;
using System.Linq;
public class Program {
public static void Main() {
string str = "the quick brown fox jumps over the lazy dog";
var res = str.Where(chk => "aeiouAEIOU".Contains(chk)).Distinct();
if (!res.Any())
Console.WriteLine("No vowels!");
foreach(var vowel in res)
Console.WriteLine("Your phrase contains vowel = {0}", vowel);
}
}
実行結果
Your phrase contains vowel = e Your phrase contains vowel = u Your phrase contains vowel = i Your phrase contains vowel = o Your phrase contains vowel = a
コードのポイント
- Where():条件に一致する文字だけを抽出します。「aeiouAEIOU」に含まれる文字、つまり大文字・小文字両方の母音を選択しています。
- Distinct():重複する母音を取り除くことで、各母音を1回ずつだけ表示できます。
- Any():シーケンスに要素が存在するかどうかを判定します。母音が1つも含まれていない場合の処理に活用できます。
-
Swiftで文字列が別の文字列を含んでいるか確認する方法
Swiftである文字列に別の文字列が含まれているかどうかを確認するには、2つの異なる文字列が必要です。1つは検索対象となる文字列、もう1つはその中に特定の文字列が含まれているかを調べる元となる文字列です。 ここでは、確認したい文字列を「point」、全体の文字列を「TutorialsPoint」、そして別の文字列として「one two three」を使用して説明します。Playgroundでこれらの文字列を使って実際に確認してみましょう。 この確認は、以下に示す2つの方法で行うことができます。まずは3つの異なる文字列を作成します。 var completeStr1 = Tutorials po
-
【Python】文字列がすべてユニークな文字で構成されているか判定する方法
本記事では、与えられた文字列に含まれる文字がすべて一意(ユニーク)であるかどうかを判定するPythonプログラムについて、その解法とアプローチをわかりやすく解説します。 問題の概要 文字列が入力として与えられたとき、その文字列に含まれるすべての文字が重複なく一意であるかどうかを判定します。たとえば「abcde」はすべて異なる文字で構成されているためTrue、「tutorialspoint」のように同じ文字が複数回出現する場合はFalseとなります。 アプローチ この問題は、以下のような手順で効率的に解くことができます。 ブール値の配列を用意する: 各インデックス i が「アルファベット(AS