約 3,482,169 件
https://w.atwiki.jp/lmaker/pages/16.html
「文字列選択」とは 話の分岐を作ったり、フラグで分岐したり 分岐のために使う物。 使い方 文字列選択を追加を選択し、名前(見出し)を入力 ダブルクリックでプロパティ表示 全般タブ 名前 名前を変えられる IDのチェック IDをチェック出来る(おそらく出した順) 文字列選択タブ 設定 横、縦の位置 選択肢の場所を変えることができる 揃え 選択肢をそろえる方向を変えることができる 選択肢 分岐でくわしく説明します 効果音 ホバー時は上にカーソルを乗せたとき(未確認) 選択時はクリックしたとき に、ならす効果音を選択できる 制限時間 動作タイプ 制限時間のあるなしを選択できる シネマファイル再生も選択可 時間(制限時間ありの場合のみ) 時間をミリ秒単位で決めることが出来る ※1ミリ秒=0.001秒 ファイル(シネマファイル再生選択時のみ) 再生するファイルを選べる ジャンプタブ 分岐にて
https://w.atwiki.jp/usak/pages/15.html
easy 漢字 ひらがな ゲーム げーむ ジュース じゅーす スイッチ すいっち ファイル ふぁいる 今 いま 会心 かいしん 作業 さぎょう 停滞 ていたい 全体 ぜんたい 公園 こうえん 公開 こうかい 冬 ふゆ 分担 ぶんたん 劣化 れっか 単体 たんたい 印鑑 いんかん 参考 さんこう 台風 たいふう 問い とい 回線 かいせん 圧縮 あっしゅく 基礎 きそ 夏 なつ 大会 たいかい 天体 てんたい 奪回 だっかい 子音 しいん 学校 がっこう 完成 かんせい 定形 ていけい 実体 じったい 対策 たいさく 寿司 すし 展開 てんかい 常識 じょうしき 建造 けんぞう 急遽 きゅうきょ 悪戯 いたずら 情報 じょうほう 打開 だかい 技術 ぎじゅつ 挑戦 ちょうせん 採算 さいさん 接待 せったい 携帯 けいたい 携行 けいこう 敗退 はいたい 教科 きょうか 敢行 かんこう 整形 せいけい 新規 しんき 旗 はた 春 はる 昨今 さっこん 暫定 ざんてい 果敢 かかん 残骸 ざんがい 波形 はけい 活動 かつどう 浅瀬 あさせ 滑降 かっこう 滝 たき 漸次 ぜんじ 点火 てんか 点灯 てんとう 為替 かわせ 状態 じょうたい 発散 はっさん 発表 はっぴょう 矩形 くけい 研究 けんきゅう 確定 かくてい 秋 あき 簡易 かんい 結果 けっか 胡桃 くるみ 脱退 だったい 落下 らっか 解体 かいたい 解凍 かいとう 記述 きじゅつ 設計 せっけい 課題 かだい 赤 あか 躍起 やっき 退化 たいか 通信 つうしん 進化 しんか 達成 たっせい 鉄壁 てっぺき 開花 かいか 関係 かんけい 随時 ずいじ 難易度 なんいど 電子 でんし 電気 でんき 震災 しんさい 音楽 おんがく 風鈴 ふうりん 館内 かんない hard 漢字 ひらがな 一瀉千里 いっしゃせんり 予て かねて 仄聞 そくぶん 俎 まないた 俤 おもかげ 偏に ひとえに 凋む しぼむ 剛毅木訥 ごうきぼくとつ 十六夜 いざよい 反駁 はんばく 噤む つぐむ 回向 えこう 埴生 はにゅう 外郎 ういろう 大言壮語 たいげんそうご 奢侈 しゃし 嫡男 ちゃくなん 定款 ていかん 宥める なだめる 尤も もっとも 嵩む かさむ 幇助 ほうじょ 平仄 ひょうそく 庫裏 くり 弥縫策 びほうさく 徐に おもむろに 快哉 かいさい 恢復 かいふく 恭しい うやうやしい 悲憤慷慨 ひふんこうがい 慮る おもんばかる 懊悩 おうのう 拱く こまねく 拿捕 だほ 捗る はかどる 揶揄 やゆ 数寄屋 すきや 敷衍 ふえん 斟酌 しんしゃく 斯界 しかい 旋頭歌 せどうか 旗幟鮮明 きしせんめい 明眸皓歯 めいぼうこうし 晩稲 おくて 更迭 こうてつ 朱鷺 とき 杜撰 ずさん 校倉 あぜくら 桎梏 しっこく 椿事 ちんじ 毀誉褒貶 きよほうへん 沈香 じんこう 烏鷺 うろ 独活 うど 猜疑 さいぎ 猥り みだり 画竜点睛 がりょうてんせい 病葉 わくらば 瞠る みはる 矍鑠 かくしゃく 知悉 ちしつ 磊落 らいらっく 端境期 はざかいき 粽 ちまき 罵詈 ばり 羚羊 かもしか 聊か いささか 聳える そびえる 膃肭臍 おっとせい 膾炙 かいしゃ 臥薪嘗胆 がしんしょうたん 舅 しゅうと 花魁 おいらん 草臥れる くたびれる 薯蕷 とろろ 虞 おそれ 訥弁 とつべん 詳らか つまびらか 誣告 ぶこく 論う あげつらう 謦咳 けいがい 譫言 うわごと 蹲る うずくまる 迸る ほとばしる 鍍金 めっき 鏤める ちりばめる 隘路 あいろ 雪洞 ぼんぼり 靡く なびく 頑迷固陋 がんめいころう 顰める ひそめる 驥尾 きび 高邁 こうまい 魑魅魍魎 ちみもうりょう 魘される うなされる 鰥夫 やもめ 鶏鳴狗盗 けいめいくとう 鹿尾菜 ひじき 黄泉 よみ 鼬 いたち normal 漢字 ひらがな アウトドア あうとどあ アウトプット あうとぷっと インプット いんぷっと インポート いんぽーと エクスプローラ えくすぷろーら エクスポート えくすぽーと エディター えでぃたー エディット えでぃっと オリジナル おりじなる キーボード きーぼーど コンパイル こんぱいる コンピュータ こんぴゅーた コンベア こんべあ サンプル さんぷる ショートカット しょーとかっと スクリプト すくりぷと スクリーン すくりーん スクロール すくろーる ゼミナール ぜみなーる ソリューション そりゅーしょん タイピング たいぴんぐ ダウンロード だうんろーど ツインテール ついんてーる テキスト てきすと テクスチャ てくすちゃ ディスプレイ でぃすぷれい デザイン でざいん デスクトップ ですくとっぷ デフォルト でふぉると ドキュメント どきゅめんと ネットワーク ねっとわーく パーソナル ぱーそなる ホームページ ほーむぺーじ ボリューム ぼりゅーむ ライブラリ らいぶらり ランチャー らんちゃー リムーバブル りむーばぶる ローカル ろーかる ワードパッド わーどぱっど 一般常識 いっぱんじょうしき 一覧表 いちらんひょう 互換性 ごかんせい 個人情報 こじんじょうほう 判定 はんてい 効率 こうりつ 南瓜 かぼちゃ 原点 げんてん 反芻 はんすう 合宿 がっしゅく 和英辞典 わえいじてん 因縁 いんねん 定期的 ていきてき 対処法 たいしょほう 平仮名 ひらがな 御嶽山 おんたけさん 心太 ところてん 悉皆 しっかい 推奨 すいしょう 掲示板 けいじばん 提供 ていきょう 教材 きょうざい 文字列 もじれつ 文章題 ぶんしょうだい 新涼 しんりょう 旧里 きゅうり 柑橘 かんきつ 株式 かぶしき 検定 けんてい 検証 けんしょう 模倣品 もほうひん 模倣犯 もほうはん 模造品 もぞうひん 滑舌 かつぜつ 灰燼 かいじん 無作為 むさくい 片仮名 かたかな 畢竟 ひっきょう 発狂 はっきょう 知恵袋 ちえぶくろ 石灰石 せっかいせき 突厥 とっけつ 端的 たんてき 筆記体 ひっきたい 紺青 こんじょう 継続 けいぞく 綿密 めんみつ 纏足 てんそく 老朽化 ろうきゅうか 脆弱 ぜいじゃく 英和辞典 えいわじてん 表計算 ひょうけいさん 見解 けんかい 言語処理 げんごしょり 説明書 せつめいしょ 辮髪 べんぱつ 鉄鉱石 てっこうせき 陽炎 かげろう 階段 かいだん 鞭撻 べんたつ 饒舌 じょうぜつ
https://w.atwiki.jp/nadebook/pages/44.html
【選択文字列】メンバ変数 部品のテキストで、選択している部分の文字列を表します。 選択部分の文字列。 値の設定 部品に選択文字列を設定することはできません。 値の取得 部品の選択文字列を取得する。 Sは(部品名)の選択文字列。 取得できる値 文字列 ***** サンプル ***** エディタAとはエディタ。 ボタンBとはボタン。 ボタンBのクリックした時は 「カーソル位置は、{エディタAの行},{エディタAの列}」と表示。 「選択位置は、{エディタAの選択位置}」と表示。 「選択文字数は、{エディタAの選択文字数}」と表示。 「選択文字列は、{エディタAの選択文字列}」と表示。 ***** ここまで *****
https://w.atwiki.jp/taketake4132/pages/16.html
文字列の基礎 pythonの文字列は「 」(シングルクォーテーション)と 「"」(ダブルクォーテーション)の両方で表現される。 文字列の連結 文字列の連結は+を使う。 test_str = "012" test_str += "345" 実行結果 012345 文字列への変換 文字列への変換(キャスト)は下記の通り。 test_str = 100 print str(test_str) + "円" 実行結果 100円 文字列の置換 文字列の置換は「replace」を使う。 test_str="python-izm" print test_str.replace("izm", "ism") 実行結果 python-ism 文字列の分割 文字列の分割はsplit関数を使用する。 この関数はタプル形式で返り値を返す。 test_str="python-izm" print test_str.split("-") 実行結果 [ python , izm ] 文字列のゼロ埋め 文字列の左にゼロを埋める場合はrjustを使い込む 第一引数が埋めた後の桁数、第二引数が埋め込む文字列です。 当然ゼロ以外の文字列も埋め込むことが可能となる。 もしくはゼロ限定で「zfill」が使える。 test_str="1234" print test_str.rjust(10,"0") print test_str.rjust(10,"!") print test_str.zfill(10) print test_str.zfill(3) 実行結果 0000001234 !!!!!!1234 0000001234 1234 文字列の検索 任意の文字列のが先頭にあるか調べる方法。 文字列に任意の文字が含まれているか調べる方法 test_str="python-izm" print test_str.startswith("python") print test_str.startswith("izm") print "z" in test_str print "s" in test_str 実行結果 True False True False 大文字、小文字変換 指定の文字列を大文字、小文字へ変換するには「upper」もしくは「lower」関数を使う。 test_str="Python-Izm.Com" print test_str.upper() print test_str.lower() 実行結果 PYTHON-IZM.COM python-izm.com 先頭・末尾の削除 文字列の先頭・末尾を削除した値を取得する。 それぞれ「lstrip」は先頭から、「rstrip」は末尾から削除する 引数なしでは空白を除去する。 #! c /Python26/python.exe# -*- coding utf-8 -*- print "----------------------------------" test_str = " python-izm.com"print test_str test_str = test_str.lstrip() #先頭の空白を削除print test_str test_str = test_str.lstrip("python") #先頭のpythonまでを削除print test_str print "----------------------------------" test_str = "python-izm.com "print test_str + "/" test_str = test_str.rstrip() print test_str + "/" test_str = test_str.rstrip("com")print test_str 実行結果 ================================ python-izm.com python-izm.com -izm.com ================================ python-izm.com / python-izm.com/ python-izm.
https://w.atwiki.jp/devindex/pages/15.html
調査指定文字の出現位置(IndexOf) 指定文字の出現位置(最後)(LastIndexOf) 文字列の比較(CompareTo) 加工文字列の挿入(Insert) パス文字列の結合(Combine) 参考 調査 指定文字の出現位置(IndexOf) int = 文字列.IndexOf(指定文字列) int 0 :出現位置 int = -1 :存在しない 指定文字の出現位置(最後)(LastIndexOf) int = 文字列.LastIndexOf(指定文字列) int 0 :出現位置(先頭から) int = -1 :存在しない 文字列の比較(CompareTo) int = 文字列A.CompareTo(文字列B) 文字列A = 文字列B :同一 加工 文字列の挿入(Insert) string = 文字列.Insert(位置, 挿入文字列); パス文字列の結合(Combine) string = Path.Combine(文字列A, 文字列B) 参考 http //www.labasp.net/CsharpNote/mTips/Moji/index.html http //jeanne.wankuma.com/tips/csharp/string/compare.html(CompareTo)
https://w.atwiki.jp/elisp/pages/12.html
文字列リファレンス その他 文字列を比較する 文字列の長さを得る 文字列を結合する 繰り返し文字列を生成する 大文字・小文字に揃える 先頭だけを大文字にする(キャピタライズ) 大文字と小文字の入れ替え コマンドの実行結果を文字列に設定する 複数行の文字列を作成する ヒアドキュメントの終端文字列をインデントする 複数行のコマンドの実行結果を文字列に設定する 部分文字列を取り出す 部分文字列を置き換える 文字列を指定されたパターンで分割する 文字列中の式を評価し値を展開する 文字列中の環境変数を展開する 文字列を1文字ずつ処理する 文字列を1行ずつ処理する 文字列の先頭と末尾の空白文字を削除する 文字列を数値に変換する (to_i) 数値を文字列に変換する (to_s) 文字列を浮動小数点に変換する (to_f) 8進文字列を整数に変換する (oct) 16進文字列を整数に変換する (hex) ASCII文字をコード値に(コード値をASCII文字に)変換する 文字列を中央寄せ・左詰・右詰する "次"の文字列を取得する 文字列を暗号化する 文字列中で指定したパターンにマッチする部分を置換する 文字列中に含まれている任意文字列の位置を求める 文字列の末端の改行を削除する カンマ区切りの文字列を扱う 任意のパターンにマッチするものを全て抜き出す 漢字コードを変換する マルチバイト文字の数を数える マルチバイト文字列の最後の1文字を削除する printf整形 文字列 リファレンス GNU Emacs Lispリファレンスマニュアル 文字列と文字 Strings and Characters - GNU Emacs Lisp Reference Manual Formatting Strings - GNU Emacs Lisp Reference Manual その他 Emacs Lisp の文字列操作まとめ s.el (文字列操作用ライブラリ) 文字列を比較する string-equal,string=関数を使います。 string=はstring-equalの別名として定義されているので、どちらも同じ機能です。 (string= "abc" "abc") ;= t (string= "abc" "ABC") ;= nil (string= "AB" "ABC") ;= nil 大文字小文字の区別を考慮する場合はcompare-strings関数を使います。 (compare-strings "ABC" nil nil "abc" nil nil t) ;= t 文字列の長さを得る (length "abcdefg") ;= 7 (length "日本語") ;= 3 文字列を結合する concat関数を使います。 ; 普通に結合 (concat "abc" "-def") ;= "abc-def" (concat "私は" "美味しく食べました") ;= "私は美味しく食べました" ; nilは無視 (concat "abc" nil "-def") ; 引数なしの場合は空文字列を返す (concat) ;= "" mapconcat関数を使えば各文字列の間に区切り文字を挿入することが出来ます。 (mapconcat # identity ("Hello" "Emacs" "Lisp") "-") ;= "Hello-Emacs-Lisp" 繰り返し文字列を生成する 一文字だけの繰り返しならばmake-string関数が使えます。 (make-string 10 ?X) ;= "XXXXXXXXXX" 文字列の繰り返しならば、文字列のシーケンスを作ってそれを結合するのが良いでしょう。 (apply # concat (make-list 5 "Hello")) ;= "HelloHelloHelloHelloHello" (mapconcat # identity (make-vector 5 "Hello") ",") ;= "Hello,Hello,Hello,Hello,Hello" 大文字・小文字に揃える upcase, downcase関数を使います (upcase "The cat in the hat") ;= "THE CAT IN THE HAT" (downcase "THE CAT IN THE HAT") ;= "the cat in the hat" 先頭だけを大文字にする(キャピタライズ) 他の言語に余り無くて便利な機能として、キャピタライズ(先頭だけを大文字にする)があります。 ;; 一文字目を大文字に、残りは全て小文字にする (capitalize "The cat in the hat") ;= "The Cat In The Hat" (capitalize "THE 77TH-HATTED CAT") ;= "The 77th-Hatted Cat" ;; 一文字目を大文字に、残りは何もしない (upcase-initials "The cat in the hat") ;= "The Cat In The Hat" (upcase-initials "THE 77TH-HATTED CAT") ;= "THE 77TH-HATTED CAT" 大文字と小文字の入れ替え (require cl) (let ((case-fold-search nil)) (map string # (lambda (c) (if (char-equal (upcase c) c) (downcase c) (upcase c))) "i lOVE eMACS.")) ;= "I Love Emacs." コマンドの実行結果を文字列に設定する (shell-command-to-string "file -ib /bin/bash") ;= "application/x-executable\n" 複数行の文字列を作成する ヒアドキュメントの終端文字列をインデントする 複数行のコマンドの実行結果を文字列に設定する 部分文字列を取り出す (substring string START optional END) substring関数を使います。 startは先頭の添え字、endは終端の添え字を表します(endは含めずにコピーする)。 ; 0(a)から、3(d)なので"abc"を生成 (substring "abcdefg" 0 3) ;= "abc" ; 負の添え字は逆から数える (substring "abcdefg" -3 -1) ;= "ef" ; 第2引数は省略可能で、終端までコピーを表す (substring "abcdefg" 2) ;= "cdefg" ; 先頭に0を渡すと文字列のコピーと等価になる (substring "abcdefg" 0) ;= "abcdefg" 部分文字列を置き換える CLライブラリのsetfマクロとsubstring関数を使います。この場合は変数の中身が破壊されます。 (require cl) (setq s "Apple Banana Orange") (setf (substring s 0 5) "Vine") ;= "Vine" s ;= "Vine Banana Orange" 文字列を指定されたパターンで分割する Rubyのsplitとほぼ同じように使えます、第2引数に渡すのは正規表現です。 デフォルトでは空白文字を区切り文字として扱います。 (split-string STRING optional SEPARATORS OMIT-NULLS) (split-string "Soup is good food" "o") ;= ("S" "up is g" "" "d f" "" "d") (split-string "Soup is good food" "o+") ;= ("S" "up is g" "d f" "d") (split-string "Soup is good food") ;= ("Soup" "is" "good" "food") 文字列中の式を評価し値を展開する 文字列中の環境変数を展開する (substitute-in-file-name "LANG=${LANG}") ;= "LANG=ja_JP.UTF-8" 文字列を1文字ずつ処理する 色々な方法があると思いますが、map関数を利用すると以下のように書けます。 以下のサンプルはstr変数の内容を1文字ずつ、*Messages*バッファに出力します。 (require cl) (setq str "a b c d\n** ** ** *\n123\n456\n") (map nil (lambda (x) (message x)) (split-string str "")) ;= *Messages* ;a ; ;b ; ;c ; ;d ; [2 times] ;* [7 times] ; [2 times] ;1 ;2 ;3 ; [2 times] ;4 ;5 ;6 ; [2 times] 文字列を1行ずつ処理する 色々な方法があると思いますが、map関数を利用すると以下のように書けます。 以下のサンプルはstr変数の内容を1行ずつ、*Messages*バッファに出力します。 (setq str "a b c d\n** ** ** *\n123\n456\n") (map nil (lambda (x) (message x)) (split-string str "\n")) ;= *Messages* ;a b c d ;** ** ** * ;123 ;456 文字列の先頭と末尾の空白文字を削除する もうちょっといい方法無いかなー。 (car (split-string (car (cdr (split-string " abcd " "^ +"))) " +$")) ;= "abcd" ; 正規表現を使ってみる (replace-regexp-in-string "^\\s-+\\|\\s-+$" "" " \t abc def \t ") ;= "abc def" 文字列を数値に変換する (to_i) string-to-number関数を使います。基数を指定することもできます。 (string-to-number STRING optional BASE) (string-to-number "256") ;= 256 (string-to-number "256.0") ;= 256.0 (string-to-number "-256.5") ;= -256.5 ;; 基数を指定する (string-to-number "110") ;= 110 (string-to-number "110" 8) ;= 72 (#o110) (string-to-number "110" 16) ;= 272 (#x110) 数値を文字列に変換する (to_s) string-to-numberの逆の関数、number-to-string関数を使います。 (number-to-string 256) ;= "256" (number-to-string -256.0) ;= "-256.0" (number-to-string -256.5) ;= "-256.5" 文字列を浮動小数点に変換する (to_f) number-to-string関数は浮動小数にも使えます。 (string-to-number "10.1") ;= 10.1 8進文字列を整数に変換する (oct) 16進文字列を整数に変換する (hex) ASCII文字をコード値に(コード値をASCII文字に)変換する 文字列を中央寄せ・左詰・右詰する ;; 左詰め (format "%10s" "foo") ;= " foo" (format "%10d" 1234) ;= " 1234" ;; 右詰め (format "%-10s" "foo") ;= "foo " (format "%-10d" 1234) ;= "1234 " "次"の文字列を取得する 文字列を暗号化する 文字列中で指定したパターンにマッチする部分を置換する (replace-regexp-in-string REGEXP REP STRING optional FIXEDCASE LITERAL SUBEXP START) (setq s "Apple Banana Apple Orange") (replace-regexp-in-string "Apple" "Pine" s) ;= "Pine Banana Pine Orange" 文字列中に含まれている任意文字列の位置を求める (setq s "Apple Banana Apple Orange") (string-match "Apple" s) ;= 0 (string-match "Banana" s) ;= 6 文字列の末端の改行を削除する replace-regexp-in-string "\n+$" "" STRING) カンマ区切りの文字列を扱う (split-string "001,TAKEUCHI Hitoshi,Yokohama" ",") ;= ("001" "TAKEUCHI Hitoshi" "Yokohama") 任意のパターンにマッチするものを全て抜き出す 漢字コードを変換する ; エンコード (encode-coding-string "漢字です" sjis) (encode-coding-string "漢字です" euc-jp) (encode-coding-string "漢字です" utf-8) (encode-coding-string "漢字です" emacs-mule) ; デコード (decode-coding-string (encode-coding-string "漢字です" utf-8) utf-8) ;= "漢字です" マルチバイト文字の数を数える マルチバイト文字列の最後の1文字を削除する printf整形 (format "このバッファは %s." (buffer-name)) ;= "このバッファは *scratch*." ;整数 %d (format "%d" 100) ;= "100" ;浮動小数点その1 %f (format "%f" 100.0) ;= "100.000000" ;浮動小数点その2 %g できるだけ短くなる出力にする (format "%g" 100.00) ;= "100" (format "%g" 100.05) ;= "100.05" (format "%g" 1000000000000000) ;= "1e+015" (format "%g" 0.00000000000000000001) ;= "1e-020" ;ダブルクォートなどをエスケープして出力 (format "この文字列 %S のダブルクォートなどはエスケープされる" "test") ;= "この文字列 \"test\" のダブルクォートなどはエスケープされる" (format "この文字列 %S のダブルクォートなどはエスケープされる" "\"test\"") ;= "この文字列 \"\\\"test\\\"\" のダブルクォートなどはエスケープされる"
https://w.atwiki.jp/tm-mura/pages/60.html
文字列 Stringとそのスーパークラス、サブクラスを紹介。 配列と同じ項目もあり。 ただしモノによっては文字列での使用が禁止されているメソッドもある。 s = Hello . s1 = s addAll World This message is not appropriate for this object ※Smalltalkの文字列では、破壊的に修正するようなコレクション共通メソッドは禁止されているようだ。 文字列の特徴: リテラルで定義するとimmutableな状態になり、エラーになる処理がある。(インスペクタの画面ラベルが違うよね) Hello World at 1 put $F NoModificationError (WriteStream on ) nextPut $a NoModificationError beMutableとするとこれらの処理ができるようになる。 マルチバイト文字を含む文字列はTwoByteStringになる。 Hello Worldあ class このクラスになると、シングルバイトの文字を含む場合も全て2バイト計算になる。 また、3バイト以上の文字は存在しない。 全角文字=シングルバイト文字ではない × class 例えば乗算記号はビッグエンディアン側の数値(218)に割り当てられている。 文字列を作る 繰り返し文字列を生成する 文字から文字列にする 文字列の1文字目を取得する 文字列の最後の文字を取得する 文字列の指定した位置の文字を取得する 文字列の先頭から指定した文字数分を取得する 文字列の最後の指定した文字数分を取得する 指定した文字数を先頭から取り除く 指定した文字数を最後から取り除く 文字列のバイト数を取得する マルチバイト文字が含まれるか調べる 文字列を結合する 大文字・小文字に揃える シングルクォーテーションでくくる 文字列をひっくり返す 任意の位置から任意の位置まで文字列を切り出す 指定したオブジェクトの手前までを切り出す 文字列がある文字列で始まるか調べる 文字列中にある文字が含まれるか調べる 文字列中にある条件にマッチする文字が含まれるか調べる 文字列中のある文字の位置を先頭から探す 文字列中のある文字の位置を最後から探す 文字列中の文字がある条件にマッチする最初の位置を返す 文字列中の文字がある条件にマッチする最後の位置を返す 文字列中からある条件にマッチする最初の文字を取得する 文字列中からある条件にマッチする最初の文字を取得し、なければないなりの動作をする 文字列を検索する 文字列がパターンにマッチするか真偽を問う マッチしたパターンの最初と最後の位置を捉えて何かする 文字列とパターンマッチさせる 文字列を置換する 改行ありの文字列にする 文字列を数値系のクラスに変換する ファイルオブジェクトに変換する 両端の半角スペースを取り除く 左側に文字を詰めて指定した文字数にする 右側に文字を詰めて指定した文字数にする 両端の特定の文字を取り除く 左側の特定の文字を取り除く 右側の特定の文字を取り除く 指定した文字で区切る 条件にマッチする文字で区切る 条件にマッチする文字で区切りつつループもする 条件にマッチしない文字で区切る 条件にマッチしない文字で区切りつつループもする 文字の前後関係を見て区切る 両端から指定した数だけ文字列を切り出す 長い文字列は...を挟んで省略する 最初の文字以外の母音をなくす 後ろから母音を除いていく 文字列を作る Hello まずはここから。 繰り返し文字列を生成する String new 10 withAll $a 単一文字から指定した数の文字列を作れるが、文字列を増幅して文字列を作る方法は基本的には用意されていない。 文字から文字列にする String with $a または $a asSymbol asString シンボルがStringのサブクラスなので、asSymbolまですれば事足りることが多い。 文字列の1文字目を取得する Hello first 文字列の最後の文字を取得する Hello last コレクション共通。 文字列の指定した位置の文字を取得する Hello at 3 コレクション共通。 文字列の先頭から指定した文字数分を取得する Hello first 3 コレクション共通。 文字列の最後の指定した文字数分を取得する Hello last 3 コレクション共通。 指定した文字数を先頭から取り除く Hello allButFirst 2 コレクション共通。値段で \ 500 みたいな文字列を数値に変換するときとかに使えるのかな?思いつくのはそれくらい。 指定した文字数を最後から取り除く Hello allButLast 1 コレクション共通。ファイルを読み込んで改行文字が最後に必ず入る場合とかに使えるかも。 文字列の文字数を取得する Hello size コレクション共通。シングルバイト(ByteStringクラス)ならこの一本槍でよい。 マルチバイト(TwoByteStringクラス)の場合もバイト数ではなく文字数が返る。 文字列のバイト数を取得する こんにちは。 sizeInBytes マルチバイト文字を含む文字列は基本的には文字数の2倍が返ってくる。 マルチバイト文字が含まれるか調べる foo = AAAAAA . foo sizeInBytes = foo size マルチバイト文字を含んでいれば数が異なるのでfalseになる。 asIntegerが256以上になる文字を含んでいる場合、自動的にTwoByteStringクラスのインスタンスになる。 AAAAAA isKindOf TwoByteString としてもよいかも。 ただし、これらのチェックには注意点あり。 1. AAA asTwoByteString なんてやると、シングルバイト文字だけで構成されていてもTwoByteStringになる。 2. 元々TwoByteStringだった文字列のマルチバイト部分をシングルバイトに置き換えても、属するクラスはTwoByteStringのまま。 3.±×÷なんかは全角文字だけどシングルバイトである。 万全を期すなら (String with foo) sizeInBytes = (String with foo) size のよに文字列を作り直すのが良いのではないか。 文字列を結合する Hello , , World コレクション共通。なのでその他のコレクション型クラスでもガンガン使うべし。 大文字・小文字に揃える Small Talk asLowercase. Big Talk asUppercase. 文字(Character)自体にasLowercase、asUppercaseが定義されていて、これを1文字ずつ繰り返している。 シングルクォーテーションでくくる Hello printString SQLをDBに渡すときは、文字列が同じくシングルクォーテーションくくりなのでこの仕様も使いどころがある。 だが、単に^selfして欲しいときがあるのもまた事実。 文字列をひっくり返す Hello reverse コレクション共通。 任意の位置から任意の位置まで文字列を切り出す Hello copyFrom 2 to 4 コレクション共通。でも文字列で使うことが一番多いのではと思う。 指定したオブジェクトの手前までを切り出す Hello copyUpTo $o コレクション共通。長い文字列になるともう使えないだろうなぁ。 文字列がある文字列で始まるか調べる Hello beginsWith Hel コレクション共通。といっても( Hello first 3) = Hel とかやれば代用できるので登場する機会は少なそうだ。 文字列中にある文字が含まれるか調べる Hello World includes $o コレクション共通。trueかfalseかだけ返す。位置まで知りたい場合はindexOf を使う。 文字列中にある条件にマッチする文字が含まれるか調べる Hello World。 contains [ i | i isLetter and [i isAlphabetic not]] コレクション共通。条件をブロックで渡すところがincludes と異なる。 ちなみにisLetterは半角アルファベットか全角文字に対しtrueとなるので、このブロックは全角文字が含まれていればtrue。 文字列中のある文字の位置を先頭から探す Hello World indexOf $o コレクション共通。ブロックで渡せるfindFirstの方がが汎用性が高い。 文字列中のある文字の位置を最後から探す Hello World lastIndexOf $o コレクション共通。ブロックで渡せるfindLastの方が汎用性が高い。 文字列中の文字がある条件にマッチする最初の位置を返す Hello World findFirst [ i | i = $o] コレクション共通。文字単位で探したい場合。 文字列中の文字がある条件にマッチする最後の位置を返す Hello World findLast [ i | i = $o] コレクション共通。findFirstと対を成すメソッド。 文字列中からある条件にマッチする最初の文字を取得する Hello World。 detect [ i | i isLetter and [i isAlphabetic not]] コレクション共通。先頭からチェックしていくメソッドしか用意されていない。 また、見つからないとエラーになる。 文字列中からある条件にマッチする最初の文字を取得し、なければないなりの動作をする Hello World。 detect [ i | i isLetter and [i isAlphabetic not]] ifNone [nil] コレクション共通。先頭からチェックしていくメソッドしか用意されていない。 見つからない場合、ifNoneブロックの評価結果が返る。 あるかないかだけ判断したいならconteins を使ったほうが便利。 文字列を検索する Hello World findString Wo startingAt 1 発展形でfindString startingAt ifAbsent 、findString startingAt ignoreCase useWildcards といった タイプもある。 文字列がパターンにマッチするか真偽を問う H*o W##ld match Helllllo World 発展形としてmatch ignoreCase もある。*は0文字以上にマッチ、#は1文字にマッチする。 マッチしたパターンの最初と最後の位置を捉えて何かする | str | str = Morning,Afternoon/Evening;Night . str matchesPattern *,*/*;* ignoreCase false do [ st ed | Transcript cr; show (str copyFrom st to ed)] こんなことをしたい日がいつか来るのか疑問だが、何か面白いことができた感じがする。 文字列とパターンマッチさせる Hello World rangeOfPattern H*W startingAt 1 ignoreCase false * で0文字以上にマッチ、 # で1文字にマッチする。Rangeオブジェクトで返ってくる。 最短マッチしか行われない。 文字列を置換する Good morning copyReplaceAll morning with afternoon コレクション共通。開始終了位置を指定できるcopyReplaceFrom to with というメソッドもある。 改行ありの文字列にする Hello\World withCRs \ そのものを残したい場合もあるかもしれないが、残念ながらエスケープする方法はない。 Hello n World expandMacros という方法もある。expandMacrosの使用方法は本家のCincomのチュートリアルが詳しい。 文字列を数値系のクラスに変換する 77.7s asNumber 数字さえ入っていれば適当に数値系のクラスに変換してくれる。.があればFloatに、.があってsで終われば FixedPointになる。数字がない場合は0が返る。 ファイルオブジェクトに変換する C \temp\foo.st asFilename STファイルのフルパスがコピペできるならファイルインも簡単。 C \xxx\yyy\zzz\bar.st asFilename fileIn 両端の半角スペースを取り除く H e l l o W o r l d trimBlanks できれば指定した文字を取り除けるメソッドが欲しかった。 左側に文字を詰めて指定した文字数にする ((String new 10 withAll $0), Hello ) last 10 このテのことがしたい場合、文字数よりバイト数指定したい場合のほうが多いのではと思うが、 残念ながらマルチバイトが混じりつつ指定したバイト数に詰めるのは結構難しい。 とりあえずシングルバイトだけの場合に有効な方法を紹介。 右側に文字を詰めて指定した文字数にする ( Hello , (String new 10 withAll $0)) first 10 左詰めを逆方向にしただけ。 両端の特定の文字を取り除く ((( -----Hello - World----- copyReplaceAll with 0 asCharacter asSymbol) copyReplaceAll - with ) trimBlanks copyReplaceAll with - ) copyReplaceAll 0 asCharacter asSymbol with Hello - World (1)半角スペースをNULL文字へ退避させ、(2)ハイフンを半角スペースに置き換え、(3)その半角スペースを取り除く。 (4)残った半角スペースをハイフンに戻し、(5)NULL文字を半角スペースに戻せばよい。 でもターゲットの文字列を変数に入れて、 foo copyFrom (foo findFirst [ i| i ~= $-]) to (foo findLast [ i | i ~= $-]) としたほうが楽。 左側の特定の文字を取り除く ((((( -----Hello - World----- , 0 asCharacter asSymbol) copyReplaceAll with 0 asCharacter asSymbol) copyReplaceAll - with ) trimBlanks copyReplaceAll with - ) copyReplaceAll 0 asCharacter asSymbol with ) allButLast 1 Hello - World---- 両端の特定の文字を取り除く方法の最初にNULL文字付加する処理、最後に取り除く処理を追加。 でもターゲットの文字列を変数に入れて、 foo copyFrom (foo findFirst [ i| i ~= $-]) to foo size としたほうが楽。 右側の特定の文字を取り除く (((((0 asCharacter asSymbol, -----Hello - World----- ) copyReplaceAll with 0 asCharacter asSymbol) copyReplaceAll - with ) trimBlanks copyReplaceAll with - ) copyReplaceAll 0 asCharacter asSymbol with ) allButFirst 1 -----Hello - World 左側バージョンと基本的に同じ。NULL文字付加する場所が最初か最後かの違い。 でもターゲットの文字列を変数に入れて、 foo copyFrom 1 to (foo findLast [ i| i ~= $-]) としたほうが楽。 指定した文字で区切る Morning,Afternoon,Evening tokensBasedOn $, コレクション共通。でも文字列で使うことが多いと思う。 条件にマッチする文字で区切る Morning,Afternoon/Evening;Night runsFailing [ i | #($, $/ $;) includes i] コレクション共通。マッチする文字が続く場合、まとめて一区切りとする。tokensBasedOn だけで十分な気もする。 条件にマッチする文字で区切りつつループもする Morning,Afternoon/Evening;Night runsFailing [ i | #($, $/ $;) includes i] do [ i | Transcript cr; show i] コレクション共通。マッチする文字が続く場合、まとめて一区切りとする。tokensBasedOn とdo で十分な気もする。 条件にマッチしない文字で区切る 123,456,789.321 runsSatisfying [ i | i isDigit] コレクション共通。runsFailing の逆条件バージョン。マッチする文字が続く場合、まとめて一区切りとする。 条件にマッチしない文字で区切りつつループもする 123,456,789.321 runsSatisfying [ i | i isDigit] do [ i | Transcript cr; show i] コレクション共通。runsFailing do の逆条件バージョン。マッチする文字が続く場合、まとめて一区切りとする。 文字の前後関係を見て区切る getFieldKnownNotToBeAName piecesCutWhere [ i j | i isLowercase and [j isUppercase]] コレクション共通。これはキャメルケースを単語ごとにカットした場合。 tokensBasedOnやrunsXxxing は区切り文字が残らないが、これは残る。また、1文字の条件でも区切ることができる。 /**/型のコメントをより分けることも可能。 ( DECLARE dt DATE; /*変数定義*/ BEGIN /*今日の日付をdtに格納*/ SELECT SYSDATE INTO dt FROM DUAL; /*標準出力させる*/ /*DBMS_OUTPUT.PUT_LINE(dt);/* YYYY-MM-DD */ DBMS_OUTPUT.PUT_LINE(TO_CHAR(dt, YYYY/MM/DD )); EXCEPTION WHEN OTHERS THEN /*例外処理*/ DBMS_OUTPUT.PUT_LINE(SQLERRM) END; / piecesCutWhere [ i j | ((i = $/) (j = $*)) | ((i = $*) (j = $/))]) groupedBy [ i | i first = $*] 両端から指定した数だけ文字列を切り出す s = Hello chopTo 4 何故か両端から切り出す。何に使うんだろう? 長い文字列は...を挟んで省略する s = Hello World contractTo 2 さっぱり使いどころがわからない。。。 最初の文字以外の母音をなくす s = Hello World dropFinalVowels さっぱり使いどころがわからない。。。 後ろから母音を除いていく s = Hello World dropVowels 5 後ろから母音を除いていくが、母音の数が引数より少ない場合、今度は何でもいいから 前から文字を削り始める。 さっぱり使いどころがわからない。 ぐっじょぶ(´-ω-)♪ http //www.l7i7.com/ -- にゃん (2012-03-05 12 36 54) プレイ内容:自由。時間:自由。場所:自由。男性アルバイト募集中( ●≧艸≦) ♪ http //b8y.in/ -- 珠緒 (2012-07-01 00 34 48) 名前 コメント -
https://w.atwiki.jp/abwiki/pages/343.html
ここではAB4.24の文字列に付いての独自研究を紹介します。 あくまでstring.sbpといくつかの実験プログラムによって調べただけですので、 実際のところは開発者にお聞きください。 文字列型の構造 ABの文字列は次のように成っています。 文字列の大きさ(4バイト) 文字列データ(*Byte型) そして文字列データの先頭アドレスをString型は持っています。 下のプログは文字列を入力し、その文字列データと長さに分解する例です。 #N88BASIC Dim a As String Dim i As DWord Dim z[345] As Byte Input a wsprintf(z, "%u", a) i=Val(z) Print MakeStr(i);"の長さ=";GetDWord(i-4) _SYSTEM_ALLOCATED_STRING_INFO構造体 string.sbpには_SYSTEM_ALLOCATED_STRING_INFO構造体が定義さています。 すぐ後に_System_AllocatedStringInfoとして宣言されています。 これはすべての文字列を一元管理するものです。 #N88BASIC Dim a As String Dim b As String Dim c As String a = "1234567890" b = "qwerty" c = "1qaz2wsx" Dim i As DWord For i=0 To _System_AllocatedStringInfo.num-1 Print Hex$(GetDWord(_System_AllocatedStringInfo.pAddress + i*4)), MakeStr(GetDWord(_System_AllocatedStringInfo.pAddress + i*4)) Next ZeroString関数 次のプログラムの実行結果はどうなるでしょう。 #N88BASIC Dim a As String Dim b As String a = ZeroString(10) b = "abc" + a + "xyz" Print Len(b), b 答えは 16abc となります。 これは+演算が文字列の実際の長さを見ていないからです。 _System_StrCalc_Plus関数を見てください。
https://w.atwiki.jp/kunanru/pages/17.html
文字列 Fortranで文字列操作するにはやはり最初に型宣言をしなければならない. character型で宣言し,文字列長も同時に宣言する. character x*3,y*2,z*5 文字列の代入 chara型変数には宣言した長さしか文字列が入らない 例 x = "abcd" xの中には"abc"が入っている 文字列の連結には//を用いる y = "de" z = x // y zには"abcde"が入っている 文字列の連結の注意点 文字列の連結をするときには文字列長に注意しなければならない. character x*5,y*2,z*7 x = "abc" y = "de" z = x//y zのなかには"abc de"が入っている. 文字列長の文字列が入っていないあまりの部分にはスペースが入っている. 解決方法 character x*100,y*100,z*10000 x = "abc" y = "def" z = TRIM(x) // TRIM(y) TRIM関数を用いることで余計な余白を覗いて連結できる.
https://w.atwiki.jp/pythontips/pages/12.html
文字列 Pythonの文字列は、変更不可能(Immutable)です。 この章では、組み込みの文字列メソッドを使用します。 注:2.5準拠です。 リファレンス 文字列を作成する s = "Hello" s Hello 文字列を結合する s = "Hello" s1 = s + " World" s1 Hello World 繰り返し文字列を生成する s = "Yah" s1 = s * 3 s1 YahYahYah 全部大文字(小文字)に揃える 大文字にするにはupper(),小文字にするならlower()メソッドを使用します。 s = "mOnTY pytHON" s1 = s.upper() s1 MONTY PYTHON s2 = s.lower() s2 monty python s mOnTY pytHON unicode文字列の場合、全角文字のA,aも互いに変換されます。(ひらがな、漢字、カタカナは対象外) 大文字と小文字を入れ替える swapcase()メソッド s = "mOnTY pytHON" s1 = s.swapcase() s1 MoNty PYThon unicode文字列の場合、全角文字のA,aも互いに変換されます。(ひらがな、漢字、カタカナは対象外) 最初だけ大文字にする 文字列全部を見て最初だけ大文字にする場合はcapitalize(),区切りごとに大文字にする場合はtitle()を使用する。 s = "mOnTY pytHON" s1 = s.capitalize() s1 Monty python s = "mOnTY pytHON" s1 = s.title() s1 Monty Python Unicode文字列の場合、同上 文字列を判定する isspace() 空白文字 isdigit() 数字 isalpha() 英字 isalnum() 英数字 islower() 小文字 isupper() 大文字 istitle() タイトルケース文字列 Unicode文字列の漢字・ひらがな・カタカナは英字かつnot大文字かつnot小文字として判定される。使用時注意 複数行の文字列を作成する 文字列中に\r\n(OS依存)を使うか、トリプルクォーテーションを使用する s = """Hello ... and ... How are you ?""" s1 = "I m fine.\nThankyou" s Hello\nand\nHow are you ? print s Hello and How are you ? print s1 I m fine. Thank you. 文字列の一部を取り出す x文字目(からy文字)を取り出す スライス[x( y)]を使用する s = "monty python" s[1] o s[2 5] nty s[0 8 2] mnyp #0~8まで一文字おき..文字列では使わないと思うが。 空白や特定の文字列を除去する strip(char),lstrip(char),rstlip(char)を使用する。charが空白なら空白を除去。 lstripは先頭から、rstripは最後から、stripは両側から対象外が出るまで除去。 spacious .strip() spacious www.example.com .strip( cmowz. ) example 空白や特定の文字列を除去・置換する replace( old, new[, count]) を使用する。old⇒newにcount個まで変換する。 s = "monty python" s.replace("o","www") mwwwnty pythwwwn 文字列を一文字ずつ処理する 文字列をリストとして処理する。 str = u"あいうえお" for s in str print s あ い う え お 複数行文字列を一行ずつ処理する 複数行の文字列= 行のリストにしてfor文で処理する。 splitlines([keepends]) を使用する。 s = """Hello ... and ... How are you ?""" for line in s.splitlines() line Hello ... and ... How are you ? 文字列を左寄せ・中央・右寄せ・0埋めする。 ljust(width[,fillchar]),rjust(width[,fillchar]),center(width[,fillchar]),zfill(width)を使用する "python".ljust(8) python "python".rjust(8) python "python".center(8) python "123456".zfill(8) 00123456