• ベストアンサー

文字列の加算

OS  :WindowsXP Pro SP1 開発環境:VisualStudio .NET 2003 開発言語:C# 開発形態:Windowsアプリケーション プログラミング初心者です。どうかよろしくお願い致します。 現在、あるアプリケーションを作成しております。 その中で、数値の入った文字列を受け取り、それを全て加算しようとしております。 例えば、 引数の文字列が"123456789"だとしたら、そのメソッド内で1+2+3+4+5+6+7+8+9を計算し、答えを返却値とする。 私は文字列をint型にキャストして計算しようと思ったのですが、うまくキャストできません。string型はint型にキャストできないのでしょうか? また他に文字列の数値の加算をする方法がありましたら、どなたかご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#14464
noname#14464
回答No.2

 一桁ごとの加算…ということでよろしいですね? それならば、int.Parseしただけでは1億2345万6789になってしまいます。 複雑な話しですが、 foreachで一文字ずつまわし、あらかじめ用意した整数に足しあわせていく…という流れになるでしょうか。 string str = "123456789"; int n = 0; foreach(char c in str) {  n += int.Parse("" + c); } MessageBox.Show(n.ToString()); と言う感じで。

tora0125
質問者

お礼

返事が遅くなり大変申し訳ございません。 ご回答ありがとうございました。 TakamiChie様のご回答を参考にし、思い通りの処理ができました。 本当にありがとうございました。

その他の回答 (3)

  • rot-N
  • ベストアンサー率27% (118/432)
回答No.4

文字列と言っても1文字づつの文字の配列なんでs[]="123456"は、s[0]='1'、s[2]='2'・・・です。 で、「v=(*s++)-'0';」でi番目の文字を数値に出来ます。 これと、文字列の最期は'\0'と言うことを使えば、プログラムは出来ますね。 これ以上は、貴方のためにならないので書きません。

tora0125
質問者

お礼

返事が遅くなり大変申し訳ありません。 ご回答ありがとうございました。 rot-N様の処理方法は他の方々と少し違うみたいですね。こちらの方法でも実装可能ということですよね。rot-N様の方法でも実装してみたいと思います。 アドバイスありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

using System; public class stringNumbersSum { public static void Main() { String str = "123456789"; double sum=0; foreach(char c in str){ sum += Char.GetNumericValue(c); } // 表示 Console.Write( "{0}",sum); } }

tora0125
質問者

お礼

返事が遅くなり大変申し訳ございません。 ご回答ありがとうございました。 BLUEPIXY様には以前にもご回答を戴きました。いつもありがとうございます。 BLUEPIXY様のアドバイスを参考に、思い通りの処理ができました。本当にありがとうございました。 これから、プログラミングの勉強に励みたいと思います。

  • ken5725
  • ベストアンサー率24% (10/41)
回答No.1

これでできると思います string str = "1"; int i; i = System.Int32.Parse(str);

tora0125
質問者

お礼

返事が遅くなり、大変申し訳ありません。 ご回答ありがとうございました。 おかげさまで、思い通りの処理ができました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう