C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 166 を表示中)
■95918 / )  Re[1]: VB,NET2013で 数値と英文字を区別したい
□投稿者/ 魔界の仮面弁士 (2863回)-(2020/10/09(Fri) 10:50:38)
2020/10/09(Fri) 10:51:49 編集(投稿者)

No95892 (年寄プログラマー さん) に返信
> www = "12"
> If Char.IsNumber(www, 2) Then

Char.IsNumber は「Char(文字)」単位で調べる物であり、
「String(文字列)」のためのものではありません。


Char.IsNumber を使うなら、たとえばこのように書くことができます。

If String.IsNullOrEmpty(www) Then
  MessageBox.Show("文字列が空です。")
ElseIf www.All(AddressOf Char.IsNumber) Then
  MessageBox.Show("すべて数字で構成されています。")
Else
  MessageBox.Show("数字以外の文字が含まれています。")
End If


ただし、 WebSurfer さんが指摘されている理由により、
 www = "Ⅲ2"
も数字のみという扱いになることに注意が必要です。




No95904 (大谷刑部 さん) に返信
>>アルファベットと数字を区別し、異なる処理をしたいと考えています
>>確認するのは2文字で空きはふくまれません
>>英数字は混在しません
> であれば、IsNumeric関数が一番無難な気がします。

お手軽ではありますが、この手のチェックで IsNumeric を使うのは悪手かも。

https://twitter.com/Benshi_Orator/status/1314366084921716736
http://www.synapse.ne.jp/anko/VbIsnumeric.html
返信 編集キー/


管理者用

- Child Tree -