約 391,545 件
https://w.atwiki.jp/lovetrip/
現在の検索文字列(順不同) ^YZAKJULE 白グフ ◆YZAkJULEx ^R.MINA.S 天 ◆R.MINA.se.^[Hh]arubon[./] ^HARUBON[./] ハル ◆.N0TiA0n.I 再依頼待ち(検索は一旦終了.) 発見済!
https://w.atwiki.jp/allegory/pages/17.html
文字列操作 色々な方法で文字列の操作を行います。
https://w.atwiki.jp/m_shige1979/pages/1192.html
文字列 概要 シングル、ダブルクォートの文字列連結に加えて、ヒアドキュメントの記述が可能 シングルクォーテーションによるサンプル CoffeeScript # 文字列設定 str = # 1行の連結 str += 1行データ # 複数行の設定 str += 行データ1 行データ2 # 変数設定 a = test data # 変数を展開できるかチェック str += + #{a} # セレクタでエレメントを取得 sample = document.querySelector("#sample") # パラメータ連結 sample.innerHTML = str javascript // Generated by CoffeeScript 1.3.3 var a, sample, str; str = ; str += 1行データ ; str += \ 行データ1\ 行データ2\ ; a = test data ; str += + #{a} ; sample = document.querySelector("#sample"); sample.innerHTML = str; ダブルクォーテーションによるサンプル CoffeeScript # 文字列設定 str = "" # 1行の連結 str += "1行データ" # 複数行の設定 str += " 行データ1 行データ2 " # 変数設定 a = " test data " # 変数を展開できるかチェック str += " " + "#{a}" # セレクタでエレメントを取得 sample = document.querySelector("#sample") # パラメータ連結 sample.innerHTML = str javascript // Generated by CoffeeScript 1.3.3 var a, sample, str; str = ""; str += "1行データ"; str += "行データ1行データ2"; a = " test data "; str += " " + ("" + a); sample = document.querySelector("#sample"); sample.innerHTML = str; ヒアドキュメントによるサンプル CoffeeScript # 文字列設定 str = str = ヒアドキュメント1 br / ヒアドキュメント2 br / ヒアドキュメント3 br / ヒアドキュメント4 br / ヒアドキュメント5 br / # セレクタでエレメントを取得 sample = document.querySelector("#sample") # パラメータ連結 sample.innerHTML = str javascript // Generated by CoffeeScript 1.3.3 var sample, str; str = ; str = ヒアドキュメント1 br / \nヒアドキュメント2 br / \nヒアドキュメント3 br / \nヒアドキュメント4 br / \nヒアドキュメント5 br / ; sample = document.querySelector("#sample"); sample.innerHTML = str;
https://w.atwiki.jp/sugawara/pages/60.html
Windows Programming Tips _UNICODEを定義しているプロジェクトで_RPTマクロを使うときにこのマクロは(このマクロから呼び出される_CrtDbgReport()は)引数の型がconst char*なのでTCHARの文字列をそのまま渡せない。 TCHAR uniStr[ uniLength ]; char str[ strSize ]; ... int ret = WideCharToMultiByte( CP_ACP, 0, uniStr, -1, str, strSize, NULL, NULL );
https://w.atwiki.jp/taichik15/pages/48.html
文字列のエンコード 3種類のエンコード関数の違い escape 変換されない文字 *+-./@_ encodeURI 変換されない文字 !#$ ()*+,-./ ;=?@_~ encodeURIComponent 変換されない文字 ! ()*-._~
https://w.atwiki.jp/parepan/pages/130.html
「Linux」という文字列が何行存在するかを調べる $ grep -c "Linux" target_file 「2004年」という文字列が存在しない行を調べる $ grep -v "2004年" target_file 指定したパスの全てのファイルについて、文字列"Linux"を探す $ find ./ -type f | xargs grep "Linux" 上記の場合はパスを「./」と指定しているので、現在のカレント ディレクトリ以降のサブディレクトリを含むファイルを検索する。 拡張子が"txt"であるファイルについて,文字列"Linux"を探す $ find . -type f -name "*.txt" | xargs grep "Linux" findで特定のファイルを絞り込んだ後に,「xargs」コマンドでファイル名の リストを作成し,grepでそれらファイルの検索を行う。 検索する際,大文字・小文字を区別しない $ grep -i "LiNuX" target_file
https://w.atwiki.jp/loveruby/pages/13.html
4.1.1 文字列リテラル 文字列リテラルとは、""や で囲まれた文字列。Stringクラスのインスタンスです。 "Hello" #= "Hello" 4.1.2 バックスラッシュ記法 4.1.3 式展開 4.1.4 バッククォート文字列 4.1.5 パーセント記法 4.1.6 ヒアドキュメント その他の話 配列から文字列を作る ["ab", "bc", "cd"].join("-") #= "ab-bc-cd"[13, 45, 50].join(" ") #= "13 45 50" ハッシュから文字列を作る hash = { "key1" = "val1", "key2" = "val2" }str = ""hash.each { |k,v| str "#{k} is #{v}\n" }puts str# key1 is val1# key2 is val2 文字列から配列を作る "/usr/local/my/doc".split("/") #= ["", "usr", "local", "my", "doc" ] 課題 0. 文字列を作る str = "Hello" puts str.dup dupは、duplicateの略から名付けられたメソッドで、オブジェクトを複製することができます。 複製とは、まったく同じものをコピーして別の場所に保存することです。 この場合は、dupの必要はありません。 1. 式展開(変数の値を文字列の中で表示する) num = 100 str = "my number is #{num}" puts str.dup " # = ここにどうぞ 同じく、dupの必要はありません。 2. 文字列リテラルを作る場合の、一重符( )と二重符("")の違いは? シングルクオートだと式展開ができない OK 3. 改行、タブを含めた文字列を作る str = "hello Flippr" puts str puts "#{str},hello ruby" text = %q|programming s fun! Flippr is "Awesome"| puts "Hi.#{text}" タブの意味がいまいち..... ちょっとわかりにくかったですかね。 文字列内で、改行、タブを挿入するときは、エスケープ記号を使って、 "\n"(改行) "\t"(タブ) と書きます。 4. ヒアドキュメントを作る s = EOS this is heredocument ruby is Object Oriented Script Language. EOS OK 5. message="This is SOS from Captain Jack"として、messageの文字列を逆さにする 逆さにするの意味がわかりません そのままの意味でしたが、わかりにくかったですかね。 hello #= olleh です。 String#reverseというメソッドを使います。 "This is SOS from Captain Jack".reverse 6. messageをすべて大文字にする puts message.upcase OK 7. messageをすべて小文字にする puts message.downcase OK 8. messageを空白で区切り、単語の配列を取得する( #= ["This", "is", "SOS", "from", "Captain", "Jack"] message="this,is,SOS,captain,jack" puts message.split(/,/) OK 9. messageのすべての空白を + に置換する(gsubを使う) puts "this is captain jack".gsub(/ /, "+") OK 10. messageの先頭10文字からなる部分文字列を作る([]を使用) def take_nchars(str,n) str.slice(/\A.{0,#{n}}/m) end puts take_nchars("this is captain jack",10) []を使った方法はわかりませんでした。 シンプルに、 puts str[0,10] でOK.または、Rangeを使って、 puts str[0..9] puts str[0...10] と書くこともできます。 また、str.slice(0,10)とstr[0,10]は同じです 11. 整数1000を文字列化する puts 1000.to_s OK 12. "ping!"を10回繰り返した文字列を作る(*を使う) puts "ping" *10 ____ OK 13. "hello\n"という文字列から末尾の改行を取り除く puts "hello\n".chomp ____ OK 14. システムコマンド"date"を実行して、現在時刻を得る t=Time.now puts t 現在時刻を得るという点では、Time.nowでもいいのですが、元の意図は、バッククオートを使って、システムコマンドを呼び出す方法でした。 puts `date`
https://w.atwiki.jp/vivid_turtle/pages/42.html
文字列は動的計画法で数え上げなどの題材とされることが多い。蟻本にもそれのページがある。 ここでは、蟻本にないはずの自分で見つけた知見を書く。 文字列の動的計画法のテーブルの定義 文字列の動的計画法のテーブルの定義は、dp[i]などをi文字目を使用した時の〇〇〇〇、とするとうまくいきやすい! 蟻本にある例だけど、LCSの動的計画法のテーブルの定義も、dp(i, j) = Sのi文字目とTのj文字目まで使った時の最長であり、dp(k, l)(1 = k = i ,1 = l = j)までのすべてのベスト、という着眼点よりはこの定義の方がうまくいきやすいと思う。 最も、LCSの場合は前者は後者を含み、蟻本もその前提に立ってコードを書いてる。後者のような考え方を取らない場合は、二次元累積和配列を用意する必要がある。 認識としては、前者が普通で、LCSがたまたま後者にしても問題ない上に実装が楽になった、と考えたい。 例 ABC130 E(500) Common Subsequence https //atcoder.jp/contests/abc130/tasks/abc130_e この場合、 dp(i, j) = Sのi文字目、Tのj文字目を最後尾として作れる共通部分列の場合の数 とするとうまくいく。動的計画法では珍しく、その状態のみをピンポイント指し、それ以外を含むということはない。 遷移としては、S(i) != T(j)は当然0となる。S(i) == T(j)ならば、dp(a, b)(ただし、a, bはそれぞれi - 1, j - 1まで計(i - 1) * (j - 1)通りすべて)の総和となる。これはSのi - 1文字目,Tのj - 1文字目までのすべての部分列と定義できる。それに最後にSもTにもあるS[i]とT[j]を足せば、新しい文字列となる。 また、今までの文字列を採用せず、S[i]のみで構成することも可能で、これは1通り。 之の実装で、上記の二次元累積和を使用すれば高速に更新できるので、この定義特有のデータ更新時のデータ取得の難しさを解決できる。 例 ABC141 E(500) Who Says a Pun? https //atcoder.jp/contests/abc141/tasks/abc141_e この問題自体は、ローリングハッシュ、Z-algorithmでも解ける。それは次のページを参照してほしい。 ローリングハッシュ Z-algorithm この問題の計算量は2乗を許容しており、これを考えると、DPを少し考えたくなる。上の内容を踏まえたDPを考えると、次のような定義を思いつく。 dp(i, j) = i番目文字とj番目の文字を最後尾としたときの連続部分列の長さの最大 これを思いつけば更新式も難しくはない。 dp(i, j) = 0 (if S[i] != S[j]) = min(dp(i - 1, j - 1) + 1, j - i) 最後のminの意味は、これはあくまで[i, j]の範囲内での連続部分列の最大の長さであり、長さをj - iに最大でも抑える必要がある。 次のように、 aaaaaaaaaaaaaa ^ ^ | | i j でも、その添え字ではj - i個の長さまでしか見ておらず、最終的な答えに相当するもっと長いのはほかのもっとj - i大きい区間のDPの計算でわかる。
https://w.atwiki.jp/leo_lina/pages/13.html
漢字の判定処理 大文字と小文字の反転処理 ラベル追加処理
https://w.atwiki.jp/sdevkb/pages/19.html
文字列の一部を取り出す