C#で配列の使い方について教えて下さい

このQ&Aのポイント
  • C#の配列の使い方について詳しく教えてください。
  • 配列を使ってテキストファイルの指定文字列を探し、新しい文字列で置換する方法について教えてください。
  • 具体的な例として、C#で指定文字列を配列で管理し、テキストファイルの中身を置換する方法について教えてください。
回答を見る
  • ベストアンサー

C#で配列の使い方について教えて下さい(>ε<)/

C#で配列の使い方について教えて下さい。(>ε<)/ やりたいこととして ・テキストファイルを読み込みます ・複数の指定文字列を探します ・見つかったら“指定文字列+新しい文字列”で置換します。 これを配列を用いてやりたいのですが、いまいちループの使い方がわからなくて・・・ 例えばテキストファイルはこんな形式とします。 [test.txt] あああ いいい ううう AAA BBB CCC 000 111 222 ンンン ヲヲヲ ワワワ [test.cs] string[] array = {"あああ", "000", "ヲヲヲ"}; string[] array2 = {"AAAAAAAAAAAAAAAAAAA", "ぜろぜろぜろ", "長渕長渕長渕長渕長渕長渕長渕"}; ? 指定文字列が上記のようだったとします。 この文字列が見つかったら例えばテキストファイルの中身を あああAAAAAAAAAAAAAAAAAAA いいい ううう AAA BBB CCC 000ぜろぜろぜろ 111 222 ンンン ヲヲヲ長渕長渕長渕長渕長渕長渕長渕 ワワワ このようにリプレースしたいのですが、どのようなループを用いれば良いのでしょうか?

  • mr-r00
  • お礼率93% (480/516)

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

  • ベストアンサー
回答No.1
mr-r00
質問者

お礼

ありがとうございます。大変参考になるコードありがとうございました。

関連するQ&A

  • 文字列を配列定義に使用するには

    文字列を配列の定義に使用したいのですが、可能でしょうか? 具体的には以下のような内容です。  $AAA = array("name"=>"山田","val"=>"10"); とすると変数$AAAは配列になります。  $BBB = 'array("name"=>"佐藤","val"=>"20")'; とすると変数$BBBは文字列になります。  $CCC = $BBB; と変数$CCCに代入した場合に、 変数$CCCを配列として認識させたいです。 つまり  print $CCC[name]; //佐藤  print $CCC[val]; //20 というように出力させたいのですが、 根本的に可能なのでしょうか…? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPでfile()を使った際の配列の要素について

    PHPのfile関数の動作について質問させて頂きます。 テキストファイルからfile()を使って配列に各行のデータを取り込んだのですが、その配列から特定の要素を探そうとしたところ、検出できませんでした。 テキスト.txtの内容------- AAA BBB CCC --------------- $array = file("テキスト.txt"); $word = "AAA"; $keys = array_keys($array,$word); var_dump($keys); 簡略化しましたが、こんな感じで実行するとAAAが格納されているはずの[0]番目のkeyは検出されません。 bar_dumpを使って$array[0]と$wordを確認してみたところ、以下のようなデータが帰ってきました。 $array[0] → string(5) "AAA" $word → string(3) "AAA" まったく同じ文字列なのに、配列の方の長さが2ほど大きくなっています。 そこでtrimを使用してみたところ、配列からこの謎の2バイト?のデータが削除できました。 検索も正しく動作するようになりました。 文末に改行が入ってるのかとも思ったのですが、\nを削除する処理では検索が出来なかったので、不思議に思っております。 テキストファイルから取り込んだ際に、文字列の前か後ろに何らかの文字が入っているのだと思うのですが、実際どのような文字が入っているのでしょうか? ---------------------------------- それともう一つお聞きしたいのですが、 テキストファイル内容がある程度長い(100行以上、または1万文字以上など)場合、file()で配列にデータを取り込むのは負荷が大きかったりするのでしょうか? fgetsで1行ずつ取り出して比較する方法も考えたのですが、処理の繰り返しと取り込むデータの大きさのどちらに配慮するべきか悩んでいます。 もし100行や1万文字が多い・少ないという感覚になる場合、実際「配列にするには大きすぎる」という感覚はどれくらいの容量から考えるべきでしょうか? 後半の質問につきましては明確な答えで無くても、「自分はこう感じる」というような感覚的なご意見でもお聞きしたいと思っています。 お手数をおかけしますが、どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • 配列の移動

    TEXTファイルに文字列を書き込んだり削除したり移動したりするプログラムを作成していますが、 aaa bbb ccc ddd eee fff ggg hhh iii このような内容を 1,aaa bbb ccc 2,ddd eee fff 3,ggg hhh iii のように上から順番に配列化して番号を指定して移動させたいのですが、 3の配列を2の上(配列1と配列2の間)や下(配列2と配列3の間)に移動するのにはどのようにしたら良いのでしょうか?

    • ベストアンサー
    • Perl
  • 多次元配列?配列のキー?変数の型?

    PHP勉強中のものです。 予定通りの動作にならんく四苦八苦しています。 どのように修正すれば予定通りになるのか考え方のアドバイスなどお願いします。 処理したいこと 変数$xxxの先頭の文字と最後の文字をsubstr()で取り出し$aaaと$bbbに別けそれぞれ代入しキーとして多次元配列に代入した配列要素を指定してechoで出力したい 試してみたこと $aaa1と$bbb1に直接整数を代入してみたところ、echoで出力された キーになる変数を整数型として変数に代入してみたが希望通りの動作にならなかった。 なにかアドバイス頂けると助かります。 $array = array( "0" =>array("あいうえお","かきくけこ"), "1" =>array("さしすせそ") ); $xxx = "0-1"; $aaa = substr($xxx,0,1); $bbb = substr($xxx,2); $aaa = (int)$aaa; $bbb = (int)$bbb; echo $array[$aaa][$bbb]; //出力されない $aaa1 = 0; $bbb1 = 1; echo $array[$aaa1][$bbb1]; //出力された $aaa = (int)$aaa; $bbb = (int)$bbb; echo $array[$aaa][$bbb]; //出力されない

    • ベストアンサー
    • PHP
  • 2つの配列を比較し、一致しないのを得たいのですが

    連想配列 $foo = array( "aaa" => "111", "bbb" => "222", "ccc" => "333" ); と 一般配列 $bar = array( 0 => "aaa", 1 => "bbb" ); がある場合に、$iを数字として、 $fooのkey部と$bar[$i]の値が一致したら(つまり、例えばaaa)、 $fooの中のその部分は除去するような事がやりたいのですがどのようにすればいいのでしょうか? 色々試してみましたが、自分には全く出来ませんでした。 除去ではなく、新しい配列に $hoge = array( "ccc" => "333" ) のような形で入れ込むのでもいいのですが、とくかく$hogeのような配列を手に入れたいと考えております。 アドバイス頂けないでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • ◆配列

    いつもお世話になっています。 [0] => ttp://aaa.hoge.jp/1.html [1] => ttp://bbb.hoge.jp/1.html [2] => ttp://ccc.hoge.jp/1.html [3] => ttp://ddd.hoge.jp/1.html [4] => ttp://aaa.hoge.jp/2.html [5] => ttp://aaa.hoge.jp/3.html [6] => ttp://aaa.hoge.jp/4.html [7] => ttp://bbb.hoge.jp/2.html [8] => ttp://bbb.hoge.jp/3.html [9] => ttp://bbb.hoge.jp/4.html [10]=> ttp://bbb.hoge.jp/5.html 上記の配列があります。例えば同じURLの場合3件まで取得しもう一つ配列を作成したい。 上記の配列だと下のような配列にしたい。 [0] => ttp://aaa.hoge.jp/1.html [1] => ttp://bbb.hoge.jp/1.html [2] => ttp://ccc.hoge.jp/1.html [3] => ttp://ddd.hoge.jp/1.html [4] => ttp://aaa.hoge.jp/2.html [5] => ttp://aaa.hoge.jp/3.html [6] => ttp://bbb.hoge.jp/2.html [7] => ttp://bbb.hoge.jp/3.html ループで色々探っているのですが。。。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • C言語にてXMLファイルから任意部分抽出

    C言語にてXMLファイルからタブで囲まれた任意部分の文字列だけを抽出したいのですが、どうやればいいでしょうか? サンプルなどありましたらありがたいです。  <aaa>   <bbb>123/bbb>   <ccc>あああ</ccc>   <bbb>456</bbb>   <ccc>いいい</ccc>  </aaa> ・抽出したいのは、<bbb></bbb>と<ccc></ccc>で囲まれた文字列。 ・大量データの場合もあるので抽出性能は考慮したい。(基本はメモリ上で操作したい。)

  • C言語でのファイル検索&ファイル書き換えについて

    C言語である特定のフォルダを指定して、その階層内(サブフォルダも含む)にあるファイル、例えばsample_nameをファイル名に含むファイルを見つけ、そのファイル内の例えば下のような書き換えを行えるようなプログラムはどうつくればいいのでしょうか。 元ファイル ~sample_name1.txt~ aaa, 10 bbb, 20 ccc, 30 ~sample_name2.txt~ aaa, 30 ccc, 12 bbb, 20 ddd, 15 上のように各ファイルにaaaやbbbが共通に含まれています。 対象ファイル:sample_name 対象文字列:aaa 変換後:100 変換後ファイル ~sample_name1.txt~ aaa, 100 bbb, 20 ccc, 30 ~sample_name2.txt~ aaa, 100 ccc, 12 bbb, 20 ddd, 15

  • Listのマッチを判定する便利Util

    Javaで以下のような処理をスマートに実現する良い方法を教えて下さい。 ・Listに配列をaddして、そのListの配列に対して指定した値がいくつマッチするかを判定する。 具体例として、 1、配列を作成 String[] array1 = { "aaa", "bbb", "ccc" }; String[] array2 = { "bbb", "ccc", "ddd" }; String[] array3 = { "ccc", "ccc", "ddd" }; String[] array4 = { "fff", "ggg", "hhh" }; 2、Listに配列を格納 List list = new ArrayList(); list.add(array1); list.add(array2); list.add(array3); list.add(array4); 3、Listの要素から"ccc"と"ddd"が2つマッチする要素を取得 上記の場合は"ccc"と"ddd"が2つマッチするのはarray2だけなのでarray2を取得する。 ※array3も"ccc"と"ddd"が2つありますが、"ccc"が2つあるので計3つマッチと判定して取得しない。 質問は上記3、の箇所です。 できればfor文でループさせて突合せ処理みたいなことは避けてスマートに実現する方法を探しております。 どなたか良い方法をご存知でしたらご教示下さい、お願い致します。

    • ベストアンサー
    • Java
  • emacsのreplace-regexpで改行を指定する方法

    例えば aaa, bbb, ccc, ddd, eee のような文字列の ","を改行に置換して aaa bbb ccc ... のようにする操作で(query-)replace-regexp<ESC %>を使って行いたいのですが、RETURNを指定するにはどのようにしたら良いのでしょうか? ESC % とうちこみ、 Query replace , with: <RETURN> と単純に入力しただけではうまく行きません。。。 以上宜しくお願い致します。

専門家に質問してみよう