文字列

「文字列」の編集履歴(バックアップ)一覧に戻る
文字列」を以下のとおり復元します。
#contents

*文字列
**リファレンスマニュアルへのリンク
-[[GNU Emacs Lispリファレンスマニュアル: 文字列と文字>http://www.bookshelf.jp/texi/elisp-manual/21-2-8/jp/elisp_5.html#SEC71]]

**文字列の長さを得る
#codehighlight(lisp){{
(length "abcdefg") ;=> 7
(length "日本語") ;=> 3
}}

**文字列を結合する
concat関数を使います。

#codehighlight(lisp){{
; 普通に結合
(concat "abc" "-def") ;=> "abc-def"
(concat "私は" "美味しく食べました") ;=> "私は美味しく食べました"

; nilは無視
(concat "abc" nil "-def")

; 引数なしの場合は空文字列を返す
(concat) ;=> ""
}}

**繰り返し文字列を生成する
**大文字・小文字に揃える
upcase, downcase関数を使います
#codehighlight(lisp){{
(upcase "The cat in the hat") ;=> "THE CAT IN THE HAT"
(downcase "THE CAT IN THE HAT") ;=> "the cat in the hat"
}}

**先頭だけを大文字にする(キャピタライズ)
他の言語に余り無くて便利な機能として、キャピタライズ(先頭だけを大文字にする)があります。
#codehighlight(lisp){{
(capitalize "The cat in the hat") ;=> "The Cat In The Hat"
(capitalize "THE 77TH-HATTED CAT") ;=> "The 77th-Hatted Cat"
}}

**大文字と小文字の入れ替え
**コマンドの実行結果を文字列に設定する
**複数行の文字列を作成する
**ヒアドキュメントの終端文字列をインデントする
**複数行のコマンドの実行結果を文字列に設定する
**部分文字列を取り出す
&bold(){substring (string start &optional end)}

substring関数を使います。
startは先頭の添え字、endは終端の添え字を表します(endは含めずにコピーする)。

#codehighlight(lisp){{
; 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"
}}

**部分文字列を置き換える
**文字列を指定されたパターンで分割する
Rubyのsplitとほぼ同じように使えます、第2引数に渡すのは正規表現です。

#codehighlight(lisp){{
(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")
}}

**文字列中の式を評価し値を展開する
**文字列を1文字ずつ処理する
**文字列を1行ずつ処理する
**文字列の先頭と末尾の空白文字を削除する
**文字列を整数に変換する (to_i)
**文字列を浮動小数点に変換する (to_f)
**8進文字列を整数に変換する (oct)
**16進文字列を整数に変換する (hex)
**ASCII文字をコード値に(コード値をASCII文字に)変換する
**文字列を中央寄せ・左詰・右詰する
**"次"の文字列を取得する
**文字列を暗号化する
**文字列中で指定したパターンにマッチする部分を置換する
**文字列中に含まれている任意文字列の位置を求める
**文字列の末端の改行を削除する
**カンマ区切りの文字列を扱う
**任意のパターンにマッチするものを全て抜き出す
**漢字コードを変換する
**マルチバイト文字の数を数える
**マルチバイト文字列の最後の1文字を削除する
**printf整形

復元してよろしいですか?

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。