電子書籍の厳選無料作品が豊富!

(10,10)(10,-10)(-5,-10)(0.7,20)
(-3.14,12)(10,10)(10,-10)(-5,-10)(0,20)
のように1行に数のペアの数列があり、それを
int n;
float[,] xy;
に読み込みたいです。

1行目であれば
n=4; xy = new float[,] {
{ 10, 10 }, { 10, -10 },{ -5, -10 }, { 0.7, 20 } };

2行目であれば、
n=5; xy = new float[,] {
{-3.14, 12}, { 10, 10 }, { 10, -10 },{ -5, -10 }, { 0, 20 } };

と記載したのと同じ状態にしたいです。

Cで記載するなら、
n=0;
while((c=getc()) != '\n') {
 if( c=='(' ) {
  xy[n][0] = getnum();
  xy[n][1] = getnum();
  ')' まで読み飛ばし;
  n++;
 }
}

のようになりますが、C#ではどのように記載したらよいのか教示ください。
もちろん、Cと同じように文字単位で処理してもよいですが、C#で用意されているもっとスマートな方法が知りたいです。

A 回答 (1件)

正規表現で括弧部にマッチする部分を回して、その中の数の部分の文字列を数値化する、かなぁ。


http://msdn.microsoft.com/ja-jp/library/vstudio/ …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
正規表現で数字の部分を切り出すのですね。なるほどです。
検討します。ありがとうございます。

お礼日時:2013/10/23 07:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!