C#で指定したUnicode文字が句読点かどうかを判定する方法
C#で指定したUnicode文字が句読点(punctuation)であるかどうかを判定するには、Char.IsPunctuation() メソッドを使用します。このメソッドは、引数に渡された文字が句読点として分類される場合に true を返し、それ以外の場合は false を返します。
例1:英字を判定する場合
まず、英字 'q' に対して Char.IsPunctuation メソッドを実行するコード例を見てみましょう。
using System;
public class Demo {
public static void Main() {
bool res;
char val = 'q';
Console.WriteLine("Value = "+val);
res = Char.IsPunctuation(val);
Console.WriteLine("Is the value a punctuation? = "+res);
}
}出力
上記のコードを実行すると、次のような結果が出力されます。
Value = q Is the value a punctuation? = False
文字 'q' はアルファベットであり句読点には該当しないため、結果は False となります。
例2:カンマを判定する場合
続いて、カンマ ',' のような実際の句読点を判定した場合の例です。
using System;
public class Demo {
public static void Main() {
bool res;
char val = ',';
Console.WriteLine("Value = "+val);
res = Char.IsPunctuation(val);
Console.WriteLine("Is the value a punctuation? = "+res);
}
}出力
上記のコードを実行すると、次のような結果が出力されます。
Value = , Is the value a punctuation? = True
カンマ ',' は句読点として分類されるため、結果は True となります。
Char.IsPunctuationメソッドのポイント
- ASCII句読点としては、
!"#%&'()*,-./:;?@[\]_{}などが該当します。 - 日本語の「。」や「、」といった全角句読点も、Unicode上で句読点カテゴリに属するため正しく判定されます。
- 英字・数字・空白などは句読点とはみなされず、false が返されます。
-
C#でHashSetに指定された要素が含まれているか確認する方法
C#のHashSet<T>に特定の要素が含まれているかどうかを確認するには、Contains()メソッドを使用します。このメソッドは、指定した要素がHashSet内に存在する場合はtrue、存在しない場合はfalseを返します。Contains()メソッドの基本構文public bool Contains (T item);引数には検索対象の要素を渡します。HashSetはハッシュテーブルを基盤としているため、要素の検索はO(1)の計算量で実行でき、非常に高速です。例1:数値型のHashSetでContains()を使う以下は、int型のHashSetに対してContains()メ
-
Pythonで文字列の平均文字が存在するかどうかを確認する方法
英数字を含む文字列 s が与えられたとき、その文字列の「平均文字」が存在するかどうかを判定し、存在する場合はその文字を返すプログラムを作成します。ここでいう平均文字とは、文字列内の各文字のASCII値の平均を計算し、その小数点以下を切り捨てた値に対応する文字のことです。 問題の例 例えば、入力が s = pqrst の場合、出力は r になります。これは、各文字のASCII値の平均が以下のように計算されるためです。 (112 + 113 + 114 + 115 + 116) / 5 = 570 / 5 = 114 ASCII値 114 に対応する文字は r なので、答えは r となります。 解