• ベストアンサー

splitについて教えてください。

the845tの回答

  • the845t
  • ベストアンサー率33% (246/743)
回答No.2

Perlだとして、 それは配列の要素数が表示されているのでは? @name=("ひろと","けいた","はやと","りゅうすけ","とらのすけ"); @str=@name; print "@str\n"; $str=join(";",@str); print "<br>$str\n"; @str=split(/;/,$str); print "<br>@str\n"; これで良いかな?

shevy
質問者

お礼

ありがとうございました。 やはり、配列の要素数が表示されていたようです。 ありがとうございました。

関連するQ&A

  • ■str_split()で指定した文字数ではなく、指定した文字までを配列に入れることは可能ですか?

    いつもお世話になっています。 文字列を配列に入れようと思って、str_split()を調べました。 $str = "Hello Friend"; $arr = str_split($str, 3); print_r($arr); の結果は Array ( [0] => Hel [1] => lo [2] => Fri [3] => end ) になりますよね?これを $str = "今日はいい天気です。遠足に行きましょう。楽しかったですね。"; としたときに、「。」までを区切りとして配列に入れることは可能でしょうか? つまり、この後何かしらのことをして、 print_r($arr); をすると、以下のように出力されるようにしたいのです。 今日はいい天気です。 遠足に行きましょう。 楽しかったですね。 str_split()で指定した文字数ではなく、指定した文字までを配列に入れることは可能でしょうか?

    • ベストアンサー
    • PHP
  • マージ型文字列のデリミタ2文字以上のSplit関数のようなものは実現できますか?

    素人で間違っているかもしれませんが、String::Splitは wchar_tのように1文字だけしか使えないので、\r\nのような2文字以上のデリミタに対応しているperlのsplit関数みたいのを探しています。 以下のソースで※ここですの部分で、2文字以上の任意のデリミタでマージ型文字列を配列にしたいです。 .NETは覚えたてですが、Vista以降でも廃れることは無いのでしょうか? 覚えて無意味はきついので・・・ /* VC++2005でperlのようなsplit関数を実現したい 区切り文字は\r\n */ using namespace System; int main( array<String^>^ args ){ String^ str = nullptr; if (1 > args->Length ){ str = "太郎\r\n花子\\純一郎"; } else { str = args[0]; } // strマージ文字列をPerlのsplit関数のようなもので、以下のようなnamesを作成したい。 // $names = split /\r\n/ $str; <=※ここです。 array<String^> ^names = { "太郎", "花子", "純一郎" }; String^ name; for each ( name in names ) { Console::WriteLine("{0}", name); } return 0; }

  • join と split で文字列を操作する場合

    にんにちは、 うまく解決する方法を思いつかないので、質問させてください。 以下のスクリプトを実行すると、a から z を * で join して、 その後、* で split するかなと思ったら、split は正規表現として とらえるためでしょうか、エラーになります。 #! /usr/bin/perl -w use strict; my $a = '*'; my $b = join $a , ('a'..'z'); print "$b\n"; my @result = split /$a/,$b; print "$_\n" foreach @result; exit(); $a = '\*'; にすると、split したときに、 余計な \ が残ってしまいます。 任意の(書く時点では分からない)いろんな文字列で 連結したり分割したりする場合のスマートな方法が ありましたら、教えていただけませんか? Perl 5.8 です。お願いします。

    • ベストアンサー
    • Perl
  • PHP+MySQL 内部結合(INNER_JOIN)がうまく行きません。

    以下の文で「client_master」テーブルと「jobmaster0717」テーブルを内部結合させようとしているのですが、うまく行きません。どこがおかしいのでしょうか? <?php  // データベースサーバへの接続・データベースの選択  $db = mysql_connect('localhost','test','password');  $db_name = 'test';  mysql_select_db($db_name,$db);  // 処理対象テーブル  $tbl_name1 = "client_master";  $tbl_name2 = "jobmaster0717";    // 内部結合(INNER JOIN句)  $str_sql1 = "SELECT * FROM {$tbl_name1}"       . " INNER JOIN {$tbl_name2}"       . " ON {$tbl_name1}.company_ID"       . "  = {$tbl_name2}.client_ID;";  $rs1 = mysql_query($str_sql1,$db);  print "\"{$str_sql1}\"<br>\n";  // 結果セットの表示  show_rs($rs1,$db);  print "<br>\n";  // 結果セット(結果ID)の開放  mysql_free_result($rs1);    // データベースサーバの切断  mysql_close($db); ?>

  • HTML::Templateのループと配列のハッシュの作成

    下記の?????の所にpushで配列のハッシュを作成しようと考えていましたが、うまくいきません。 下記のソース自体が的外れでしたら申し訳ございません。?????以外の場所も指摘して頂ければ幸いです。 よろしくお願い致します。 <TMPL_LOOP NAME="loop"> <TMPL_VAR NAME="one"><BR> <TMPL_VAR NAME="two"><BR> <TMPL_VAR NAME="three"><BR> </TMPL_LOOP> use HTML::Template; @data = ('aa<>ab<>ac','ba<>bb<>bc','ca<>cb<>cc'); foreach $xxx (@data) { my ($one,$two,$three) = split(/<>/,$xxx); ???????????????????? } my $template = HTML::Template->new(filename=>'sample.html'); $template->param(loop=>\@loop); print "Content-Type: text/html\n\n"; print $template->output;

    • ベストアンサー
    • Perl
  • perlがうごきません

    <html> <head> <title>form3</title> </head> <body> <form action="form3.cgi" method="post" name="form3"> <input type="text"name="form3"> <input type="submit"value="送信"> </form> </body> </html> ::::::::::::::::::::::::::::::: #! /usr/bin/perl if($ENV{"REQUEST_METHOD"} eq "GET"){ $str=$ENV{QUERY_STRING"}; }else{ read(STDIN, $str, $ENV{"CONTENT_LENGTH"}); } $str=~ tr/+/ /; $str=~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("c", hex($1))/eg; foreach(split(/&/, $str)){ my ($key, $value)=split(/=/, $_); $data{$key}=$value; } print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head><title>form3</title></head>\n"; print "<body>$data{'form3'}</body>\n"; print "</html>\n"; exit; :::::::::::::::::::::::::::::::: どうしてもうごきません。 どこかスクリプトがまちがっているのでしょうか。 パールのパスはあっています。

    • ベストアンサー
    • Perl
  • Macintosh環境でテキスト文字 \ を認識する方法を教えて欲しいです

    Macintosh環境において、S-JISフォーマットの、テキストファイル text.txt を読み込み、テキストで記述された改行コード変換するactionスクリプトを考えたいと思っております。 そこで、以下のようなスクリプトをつけたムービークリップを作りました。 onClipEvent (load) {   // テキストファイルの読み込み   System.useCodepage = true;   this.loadVariables("test.txt"); } on (release) {   // 改行文字を認識してメッセージに改行を追加   str = new String(text);   str = str.split(String.fromCharCode(92,110)).join("\n");   str = str.split(String.fromCharCode(92,114)).join("\n");   str = str.split("\\n").join("\n");   str = str.split("\\r").join("\n");   _root.DOCS= str; } 用意したtext.txtの内容は以下の通りです: &text=この先にnの改行があります\nこの先にrの改行があります\r¥¥n→\\n  ¥¥r→\\r& これを実行してみたところ、 ・Windows環境(FLASH7 & FLASH8)では_root.DOCSは以下のように表示されました: この先にnの改行があります この先にrの改行があります ¥¥n→\   ¥¥r→\ ・Macintosh環境(FLASH7 & FLASH8)では_root.DOCSは以下のように表示されました: この先にnの改行があります\nこの先にrの改行があります\r¥¥n→\\n  ¥¥r→\\r どうもMacintosh環境では、テキストの \ の認識が、split命令内では String.fromCharCode(92) や "\\" では認識しないのではないかと考えております。 この動作をMacintoshで実現する為には、どのように表記すればよろしいでしょうか。 良い案をおもちの方がおられましたら、是非御教授御願いできませんでしょうか。 よろしく御願い致します。

    • ベストアンサー
    • Flash
  • たくさんの配列を簡単に操作したい。

    配列の要素を出力したいのですが、 @name_1 @name_2 @name_3 @name_4 print "@name_1\n@name_2\n@name_3\n@name_4\n"; としてるのですが、配列が100個あったとき書ききれません。 このような処理を簡単に書ける方法はないでしょうか? ニュアンスとしては以下のような感じです。 for($n=0;$n<100;$n++){ print "@name_$n\n"; } ご教授おねがいします。

    • ベストアンサー
    • Perl
  • 選んだ数字だけ繰り返す

    教えてくださいm(__)m print "<SELECT NAME=\"ninzu\">\n"; print "<OPTION value=\"3\" SELECTED>3</OPTION>\n"; print "<OPTION value=\"4\">4</OPTION>\n"; : print "</SELECT>人\n"; print "<input type=\"hidden\" name=\"page\" value=\"selectpage\">\n"; print "<input type=\"hidden\" name=\"bangou\" value=\"" . $_POST['bangou'] . "\">\n"; print "<input type=\"hidden\" name=\"ninzu\" value=\"" . $_POST['ninzu'] . "\">\n"; ↑で選んだ人数分だけ、↓を繰り返えす処理をしたいのですが・・・。 print $_POST['bangou'] . "人目の番<br><br>\n"; print "お名前:<BR>\n"; print "<input type=\"text\" name=\"handle\" size=\"16\" maxlength=\"30\" value=\"$handle\"><BR><BR>\n"; print "性別:<BR>\n"; print "<OPTION value=\"$checkbox\" name=\"sex\" value=\"<? echo ($sex_tbl[1]); ?>\"><? echo ($sex_tbl[1]); ?>\n"; print "<OPTION value=\"$checkbox\" name=\"sex\" value=\"<? echo ($sex_tbl[2]); ?>\"><? echo ($sex_tbl[1]); ?>\n"; print "PRポイント:<BR>\n"; print "<input type=\"text\" name=\"point\" size=\"16\" maxlength=\"30\" value=\"$point\"><br><br>\n"; とりあえず、↓ if ((integer) $_POST['bangou']) { $_POST['bangou']++; } else { $_POST['bangou'] = 1; } で、「print $_POST['bangou'] . "人目の番<br><br>\n";」 の部分は大丈夫だと思うのですが、その後が続きません…。 教えてください。 宜しくお願いしますm(__)m

    • ベストアンサー
    • PHP
  • <br>と<br />を統合変換

    テキストの改行変換をジャバスクリプトで、 if(getId("br_1").checked==true){ str = str.replace(/&lt;br&gt;/g, "\n"); } if(getId("br_2").checked==true){ str = str.replace(/(&lt;br \/&gt;)/g, "\n"); } <input type="checkbox" name="br_1" />削除1 <input type="checkbox" name="br_2" />削除2 これで、 <br>と<br />が\n変換されるようになりましたが、 これで書き方は正しいでしょうか? また、 これをラジオボタンで 「なし」「削除1」「削除2」と単一選択にしたいのですが、 どうやればよいのでしょうか?