- PR -

文字列を数値に変換

1
投稿者投稿内容
さすけ
常連さん
会議室デビュー日: 2004/04/10
投稿数: 38
投稿日時: 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/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-07-15 20:41
引用:

例えば、文字列が”abc”であれば0に文字列が”a0b"であれば0に
文字列の中に一文字でも数値の文字以外の文字が入っている場合には
必ず0にしたいと考えています。



System.Text.RegularExpressions.Regex.IsMatch() で、正規表現を使って「数字以外の文字が含まれていた時」を除外してみるとか。

引用:

catchでとらえて無理やり0にすると言う方法も考えられるのですが、
文字列の配列になっていてfor文で順番に変換したいためcatchで捉えた場合、
tryの続きができないためできません。



それは、括る場所が悪いだけなんじゃないですか?

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
さすけ
常連さん
会議室デビュー日: 2004/04/10
投稿数: 38
投稿日時: 2004-07-15 20:53
渋木様

早速の回答ありがとうございます。

早速、試してみたいと思います。

以上
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-07-15 23:13
諸農です。

引用:

catchでとらえて無理やり0にすると言う方法も考えられるのですが、
文字列の配列になっていてfor文で順番に変換したいためcatchで捉えた場合、
tryの続きができないためできません。



何に躓いているのか理解に苦しむところですが、
いずれにせよ、渋木さんの言われる通りコーディングが
まずいのだと思います。

現状のコードの中でtry-catchが出来ないのであれば、
正規表現を使ったとしても、判定ロジックの所で同じような
躓きがありそうな気もしますが。。。

変換処理を別のメソッドにして、その中でtry-catchして、
変換結果だけをforループに返すようにしてもいいと思いますよ。。。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 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/04/10
投稿数: 38
投稿日時: 2004-07-17 01:07
諸農様
Jitta様

ありがとうございます。
ちょっとボケボケしていました。
渋木様のおっしゃるとおり、try-catchの括る場所が悪かっただけです。

どうもお騒がせしました。

以上
1

スキルアップ/キャリアアップ(JOB@IT)