• ベストアンサー

C# Splitと配列の複合方法

こんにちは、 ”てすと、です。¥四月、寒い。” のような文字列があり これを¥で区切り、さらにカンマで区切って(Splitでここはできたのですが) 結果を下記のように配列に格納したいと思うのですが、どのように記述すればよいでしょうか? 配列(0,0)=”てすと” 配列(0,1)=”です。” 配列(1,0)=”四月” 配列(1,1)=”寒い。” 文字列の内容が定まっていないため配列の要素数が変動してするものでして。

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

  • ベストアンサー
回答No.1

例えば、このような感じでしょうか。 string org = @"てすと、です。\四月、寒い。\五月、暖かい、かな。\六月、じめじめ、嫌な、感じ。"; string[] a = org.Split( '\\' ); string[][] aa = new string[a.Length][]; int i = 0; foreach( string s in a ) { aa[i] = s.Split('、'); i++; } System.Diagnostics.Debug.WriteLine(aa[0][0]); System.Diagnostics.Debug.WriteLine(aa[0][1]); System.Diagnostics.Debug.WriteLine(aa[1][0]); System.Diagnostics.Debug.WriteLine(aa[1][1]); System.Diagnostics.Debug.WriteLine(aa[2][0]); System.Diagnostics.Debug.WriteLine(aa[2][1]); System.Diagnostics.Debug.WriteLine(aa[2][2]); System.Diagnostics.Debug.WriteLine(aa[3][0]); System.Diagnostics.Debug.WriteLine(aa[3][1]); System.Diagnostics.Debug.WriteLine(aa[3][2]); System.Diagnostics.Debug.WriteLine(aa[3][3]);

関連するQ&A

  • C# 配列の配列(多次元配列?)

    C#において、配列の配列中に格納した値を、検索することを 行いたいのですが、格納した値そのものを見ることができません。 まだ、C#を始めて間もないので、配列に格納する時点で、 不備があるかも知れませんが、お願いします。 やりたいこと ・テキストファイル内にある値を、2次元配列または、多次元配列に格納 ・配列に格納した値で、データチェックなどを行う予定  テキストファイル内のデータは、下記内容となり要素数も固定ではなく変動する   A=1,2,3・・・   B=11,22,33・・・ 実際のソースは、 //配列 ArrayList list = new ArrayList(); //配列格納 1レコード毎用 ArrayList listtmp = new ArrayList(); while ((strGenderTextLine = objReader.ReadLine()) != null) {  string strBuffer;  //「=」前の値格納用変数  string[] strBuffer2; //「=」後の値格納用配列  listtmp=null;  //strtmpに「=」前の値を格納  strtmp = TextLine.Split('=').GetValue(0).ToString();  //strtmp2に「=」後の値を格納(配列)  strtmp2 = TextLine.Split('=').GetValue(1).ToString().Split(',');  for (int i = 0; i <= strtmp2.Length - 1; i ++)  {   //[i,0]に、「=」前の値を代入   if (i == 0)   {   listtmp.Add(strtmp);   }   else   {   listtmp.Add(strtmp2[i].ToString());   }  }  //list配列にlistTmp配列を格納(配列の配列)  list.Add(listtmp);  intT = intT + strtmp2.Length;  //行数カウント  intTLine = intTLine + 1;  } ここから、配列「list」内に入っている値を閲覧することができる方法を教えていただければと思います。 宜しくお願いいたします。

  • エクセル2003 string型のデーターの所定文字数の数の取得

    いつもアドバイス頂きありがとうございます。 今回、質問させていただきたいのは、 string型でデーターを取得した文字列に対して ある文字の文字数がいくつ在るかを取得したいのですが VBA関数で、そのような関数はあるのでしょうか? 例  myDataにstring型の文字列を取得してあります。 その中に「,」(カンマ)が何個存在するかと言う事 を取得したい。 やりたい事として、mydata()の中に2次元配列要素となるデーターを 1次元で仮格納してあり、それをセルに書き出すために2次元 に格納(splitで再格納)しなおしているのですが、データーが変わる たびに、カンマの数を数えて配列宣言を記入するのが面倒なので、 カンマの数がいくつでも、2次元に再格納できるようにしたいためで す。 宜しくお願いいたします。

  • splitの使用方法

    String.split の使用に関してです。 ファイルから一行づつ読み出して split で切って配列にしたいと考えています。 ファイルの中身は 1|ssm3u|00000| 2|ssm3u|11111| のように「|」区切りになっています。 通常のcsv等、カンマ区切りのファイルは split(","); を使用して問題なくできたのですが、 split("|"); と書くと、 「|」ではなく、1文字ごとに切ってしまいます。 どうすれば「|」ごとに切ることができるのでしょうか? あるいは、私のプログラム記述ミスでしょうか?

  • C# 文字列の分割

    VS2005を使用しているものです。 複数のURL(入力)を格納したString型の配列があるのですが、 この配列から各要素(URL)の最後尾にあるファイル名だけを 取り出して別のString型の配列に入れたいのですが Splitなどを駆使すればよいのでしょうか? 例 C:\○○○\▲▲▲\××.拡張子 (元の配列の要素の一例)   などから××.拡張子の文字列だけを取り出して   別の配列に格納する感じです。 splitを使う際は\などを区切りに考えています。 for文の中でsplitを駆使しようと考えたのですが、分割した文字列を別で配列に格納して、その最後尾の要素だけ取り出したいのですが、URLの長さは入力によってまちまちなのでどのようにして取り出せばよいか困っています。 勉強不足で恐れ入りますが、何かご教授願えれば幸いです。

  • c# 配列の受け取り方

    こんにちは、 c#言語で、RETURNの返しが配列の場合 どのように疎ければよいのでしょうか? メイン処理 strmtcにrun_mainから帰ってくる配列を格納したい string[] strmtc = run_main(""); run_main処理 // カンマ区切りで分割して配列に格納する string[] sarray; sarray = s.Split(','); return sarray;

  • Excel(VBA)で配列の要素数を調べるには?

    お世話になります。 ExcelのVBAで、split関数を使って配列に格納したデータの要素数を調べる方法がわかりません。 下記のようなコードで、読み込んだデータを配列(Arraydata)に格納することは出来たのですが、test.csvの要素数が処理の度に変わるため、要素数に応じて後続の処理を行ないたいと考えています。 Open test.csv For Input As #1 ' test.csvファイルを開く Line Input #1, test.csv ' データ行を読み込む Arraydata = Array(Split(test.csv, ",")) ' 配列に格納 よろしくお願いします。

  • rubyのループ文の中でのsplitの挙動について

    宜しくお願いします。 Rubyで配列の中の文字列をsplitして多重配列にしたいと考えています。 例えば @memberという変数の中に [ "012,234,567", "8910,111213,141516", ・・・ ] のような文字列の配列があるとします。 これを(/,/)でsplitして [ ["012","234",567] ["8910","111213","141516"] [・・・] ] (・・・は同じような配列が続いているだけです。) のような配列に変更したいと思っていますが うまくいきません。 @member.each do |mem| mem.split(/,/) end のような書き方でやってみましたが、結果は変化なし。 @member.each do |mem| #mem.split(/,/) mem =mem.split(/,/) #結果の処理内容をここに end と書くと、このループ文の中でしか機能しません。 どのような書き方をすれば変数にsplitした結果を 取り込めるのでしょうか。 どうぞ宜しくお願いいたします。

    • ベストアンサー
    • Ruby
  • split() 正規表現

    正規表現で / (スラッシュ) .(ドット)にマッチ 正規表現により文字列を分割し、配列に格納する split("[/\.]" $v)としていましたが split関数が使えなくなるので、変わりの方法を考えていますが preg_split()などではうまくいきませんでした。 何か方法を教えて下さい。

    • ベストアンサー
    • PHP
  • 配列の要素をばらばらにして入れ込む

    たとえば8つの配列を持つ配列@aを(2004 10/12 田中 1 1 1 0 0)として、 その第4~8要素だけをコンマ区切りの文字列"1,1,1,0,0"として$aaaに入れることは可能ですか?

  • Javaのsplit()メソッドについて

    Java初心者です。 あるテキストエリアに入力された文字列が、 X行以上かどうかを判定するために、 split("/r/n",-1)で、1行ごとに区切ってString[]に格納し、 その配列数の要素を確認し、X以上かどうかを判定しようと思っています。 ただ、 空行も1行と判定したいのですが、split("/r/n",-1)の場合、 空行も1要素としてくれるのでしょうか? <例> AAA<CR><LF> BBB<CR><LF> <CR><LF> CCCC<CR><LF> <CR><LF> の場合、3行目や5行目も1要素とみなし、5行として判定してほしいです。 よろしくお願いいたします。

専門家に質問してみよう