/// <summary> /// 与えられた文字列がすべてカタカナから構成されているかどうかを調べます。 /// </summary> /// <param name="s"> /// 調べる対象の文字列です。 /// </param> /// <param name="spec"> /// 調べる際に適用されるオプション動作のフラグです。 /// </param> /// <returns> /// 与えられた文字列に含まれる文字がすべてカタカナであればtrue、そうではないのならfalseです。 /// </returns> public static bool IsKatakana(this string s, HiraganaKatakanaConversionSpesicication spec = HiraganaKatakanaConversionSpesicication.None) { return(s.All(c => { if (_hiragana_string_by_katakana.ContainsKey(s)) { return (true); } if ((spec & HiraganaKatakanaConversionSpesicication.ConvertLetterNotInCommonUse) != HiraganaKatakanaConversionSpesicication.None && _additional_hiragana_string_by_katakana.ContainsKey(s)) { return (true); } return (false); })); }
private static string ToKatakana(char c, HiraganaKatakanaConversionSpesicication spec) { string result; if (_katakana_string_by_hiragana.TryGetValue(c.ToString(), out result)) { return(result); } else if ((spec & HiraganaKatakanaConversionSpesicication.ConvertLetterNotInCommonUse) != HiraganaKatakanaConversionSpesicication.None && _additional_katakana_string_by_hiragana.TryGetValue(c.ToString(), out result)) { return(result); } else { return(c.ToString()); } }
/// <summary> /// 与えられた文字列に含まれているひらがなをカタカナに置換した文字列を返します。 /// </summary> /// <param name="s"> /// 変換元の文字列です。 /// </param> /// <param name="spec"> /// 変換時に適用されるオプション動作のフラグです。 /// </param> /// <returns> /// 変換された文字列です。 /// </returns> public static string ToKatakana(this string s, HiraganaKatakanaConversionSpesicication spec = HiraganaKatakanaConversionSpesicication.None) { return(string.Concat(s.Select(c => ToKatakana(c, spec)))); }