- - PR -
文字列を数値に変換
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-07-15 20:26
初心者のさすけでございます。
C#で文字列を数値に変換したいと考えています。 例えば、文字列が”abc”であれば0に文字列が”a0b"であれば0に 文字列の中に一文字でも数値の文字以外の文字が入っている場合には 必ず0にしたいと考えています。 catchでとらえて無理やり0にすると言う方法も考えられるのですが、 文字列の配列になっていてfor文で順番に変換したいためcatchで捉えた場合、 tryの続きができないためできません。 String [] a = null; String tmp = ""; a[0] = "abc"; a[1] = "a0b" for (int i = 0; i < 2; ++i) { tmp = int.Parse(a[i]).ToString(); } 恐れ入りますが、実現方法を教えて頂けないでしょうか? 以上 | ||||||||
|
投稿日時: 2004-07-15 20:41
System.Text.RegularExpressions.Regex.IsMatch() で、正規表現を使って「数字以外の文字が含まれていた時」を除外してみるとか。
それは、括る場所が悪いだけなんじゃないですか? _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2004-07-15 20:53
渋木様
早速の回答ありがとうございます。 早速、試してみたいと思います。 以上 | ||||||||
|
投稿日時: 2004-07-15 23:13
諸農です。
何に躓いているのか理解に苦しむところですが、 いずれにせよ、渋木さんの言われる通りコーディングが まずいのだと思います。 現状のコードの中でtry-catchが出来ないのであれば、 正規表現を使ったとしても、判定ロジックの所で同じような 躓きがありそうな気もしますが。。。 変換処理を別のメソッドにして、その中でtry-catchして、 変換結果だけをforループに返すようにしてもいいと思いますよ。。。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2004-07-16 08:28
Convert.ToInt{16|32|64}(String, IFormatProvider)
Convert.ToInt{16|32|64}(String, int) なんてのがありますケド・・・ [ メッセージ編集済み 編集者: Jitta 編集日時 2004-07-16 08:30 ] | ||||||||
|
投稿日時: 2004-07-17 01:07
諸農様
Jitta様 ありがとうございます。 ちょっとボケボケしていました。 渋木様のおっしゃるとおり、try-catchの括る場所が悪かっただけです。 どうもお騒がせしました。 以上 |
1