HIRASE CONNECTION WK

programming collection

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

Link Collection

[C#] char.IsLetter('あ') == True??!

MSDN曰く「指定した Unicode 文字がアルファベット文字かどうかを示します。」ですが、表題とおり、「あ」は True となります。

2004年に川俣氏が「「あ」がアルファベット扱い? .NET FrameworkのChar.IsDigitとChar.IsLetterの正しい挙動」で指摘されていますが、未だに直っていないようです。

メソッド名通りの正しい動作だとは思いますが、残念なことにドキュメントが間違っています。というかアメリカ人は「Letter=Alphabet」だったのでしょうね。実装を確かめずにドキュメントを書くと、こうなるようです。

投稿日時 : 2009年6月18日 0:53

コメントを追加

# re: [C#] char.IsLetter('あ') == True??! 2009/06/18 13:40 biac

あら。 VS2010 の英語版では変更されてますね。
"alphabetic letter" → "Unicode letter"
http://msdn.microsoft.com/ja-jp/library/system.char.isletter(VS.100).aspx
※ それで正しいかどうかは、 わからないけど。

# re: [C#] char.IsLetter('あ') == True??! 2009/06/18 23:27 Jitta

VS2008 バージョンの英語のほうも、表の中は Unicode Letter になっていますね。

# re: [C#] char.IsLetter('あ') == True??! 2009/06/19 1:06 T.Hirase

英語限定ですか・・・
Unicode Letterって、んー。何だろうと首を傾げそうです。
'8'はFalseだし。。
あれカタカナは?とか句読点は?とか。

IsLetter()メソッドを使うのに、世界の言葉事情に詳しくならないと、まともに使えなさそうです。。

タイトル
名前
URL
コメント