文字列の処理 †
部分文字列の取り出し †
- 文字列1[n] は文字列1 のn 番目の文字を返します。
- n が負のときは、文字列1[n] は文字列1 の最後から -n 番目の文字を返します。
- 文字列1[n1, n2] は文字列1 のn 番目の文字から、n2 番目の文字までを含む部分文字列を返します。n1、n2 共に負でも構いません。
文字列への変換 †
SADの原子や式はすべて文字列に変換することができます。一部の関数、Print[], Write[], StringJoin[] 等の引き数は自動的に文字列に変換されます。
ToString[] †
- ToString[式1]は式1を表現する文字列を返します。
- ToString[式1, FormatType -> InputForm]
は式1が文字列の時、それを入力形式に変換します。入力形式とは、それをPrint[], Write[] などで出力したものをそのまま入力すると元の文字列になるような形式です。
- 式1に含まれる実数値は $FORM の値に従って変換されます。
$FORM †
- $FORM は実数値を文字列に変換する際のフォーマットを指定するシンボルです。
- この値は一度指定するとその値は保存されます。
- $FORM には文字列を与えます。
- $FORM = "桁数1.少数部1" は変換の全桁数を桁数1、少数部の長さを 少数部1 で指定します。もし変換する数が指定の範囲内で表現しきれない時は自動的に指数表示に切り替わります。
- $FORM = "F桁数1.少数部1" は変換の全桁数を桁数1、少数部の長さを 少数部1 で指定します。もし変換する数が指定の範囲内で表現しきれない時は桁数の長さだけ "*" が表示されます。
- $FORM = "S桁数1.少数部1" は変換の全桁数を桁数1、少数部の長さを 少数部1 で指定します。もし変換する数が指定の範囲内で表現しきれない時は自動的に指数表示に切り替わります。先導する空白は削除され、また終端部の 0 は削除されます。
- $FORM = "M桁数1.少数部1" は変換の全桁数を桁数1、少数部の長さを 少数部1 で指定します。もし変換する数が指定の範囲内で表現しきれない時は自動的に指数表示に切り替わります。先導する空白は削除され、また終端部の 0 は削除されます。指数部の表示は "E" でなく
になります。
- $FORM = "" は標準のフォーマット ("S18.15") です。
PageWidth †
- PageWidth は出力ファイルの Record の長さを指定します。その初期値は 131 または 端末の表示幅 - 1 の内小さい方です。PageWidth を越える出力は自動的に改行が挿入されます。
StandardForm †
- StandardForm[式1] は $FORM = ""; PageWidth = 2147483647 に設定してから 式1 を評価し、その結果を返します。また実行後に $FORM 及び PageWidth の値を以前の値に戻します。
- StandardForm[$FORM = フォーマット1; 式1] とすれば局所的に $FORM を フォーマット1 に設定できます。
- 例. StandardForm[$FORM="8.2";ToString[expr]]
BaseForm †
- BaseForm[式1, 式2, ..., 底1] は、式1, 式2, ... を文字列に変換し、それを連結した文字列を返します。その際、数値はすべて 底1 を底とする表記にします。底1 の範囲は 2 から 36 までです。
- 数値は任意の値が可能ですが無限少数は有限桁までしか求めません。
- BaseForm[10.25,16] ⇒ "a.4" 。
文字列の結合 †
StringJoin[] ( // ) †
- 文字列1 // 文字列2 // ...
は 文字列1, 文字列2, .. をこの順に結合した文字列を返します。
- 式1 // 式2 // ...
は 式1, 式2, .. をこの順に文字列に変換した結果の文字列を結合した文字列を返します。
文字列の比較 †
Equal ( == ) †
- 文字列1 == 文字列2
は文字列1 と文字列2 が等しいとき True(1)、等しくないとき False(0) を返します。
- 両辺の型が異なるときはこの式そのものを返します。
Unequal (<>) †
- 文字列1 <> 文字列2は 文字列1 と 文字列2 が異なるとき True(1)、等しいとき False(0) を返します。
- 両辺の型が異なるときはこの式そのものを返します。
文字列の照合 †
- StringMatchQ[] などいくつかの関数ではワイルドカードによる文字列の照合が可能です。これはあくまでも文字列としての照合であり、すでに述べたパターンによる照合とは全く別のものです。
ワイルドカード †
- *はゼロまたはそれ以上の任意の長さの任意の文字列に照合します。
- %は任意の1文字に照合します。
- {...}はそれに囲まれた文字達の内に含まれる任意の1文字に照合します。
- {^...}はそれに囲まれた文字達の内に含まれない任意の1文字に照合します。
- ...|...|...は|で区切られた部分のうちの少なくともひとつに照合します。
StringMatchQ[] †
文字列の演算 †
StringLength[] †
- StringLength[文字列1]は文字列1 の文字数を返します。
StringPosition[] †
- StringPosition[文字列0, 文字列1]は文字列0 に含まれる部分文字列 文字列1の位置達を{{始点1, 終点1}, {始点2, 終点2}} の様にリストにして返します。StringPosition["abccddcce","cc"] ⇒ {{3, 4}, {7, 8}}。
- 位置達は互いに重なることがあります。
- StringPosition[文字列0, 文字列1, n]は最初のn個の位置達だけを返します。
- StringPosition[文字列0, {文字列1, 文字列2, ...}]は文字列1, 文字列2, ...の全ての位置達を返します。
StringInsert[] †
- StringInsert[文字列0, 文字列1, n] は文字列0 の位置n (負でもよい)に文字列1 を挿入した文字列を返します。
StringDrop[] †
- StringDrop[文字列1, n]は 文字列1 の最初のn文字を除いた文字列を返します。
- StringDrop[文字列1, -n]は 文字列1 の最後のn文字を除いた文字列を返します。
- StringDrop[文字列1, {n}]は文字列1 のn 番目の文字を除いた文字列を返します。
- StringDrop[文字列1, {n1, n2}]は文字列1 の n1 から n2 までの文字を除いた文字列を返します。
StringFill[] †
ToCharacterCode[] †
- ToCharacterCode[文字列1]は文字列1のそれぞれの文字の ASCIIコードをリストにして返します。
- ToCharacterCode["Hello!"] => {72, 101, 108, 108, 111, 33}
FromCharacterCode[] †
- FromCharacterCode[リスト1]は ASCII コードから成るリスト1 のそれぞれに対応する文字から成る文字列を返します。
FromCharacterCode[{72, 101, 108, 108, 111, 33}] => "Hello!"。
Characters[] †
- Characters[文字列1]は文字列1に含まれる各文字から成るリストを返します。
- Characters["A string."] => {"A", " ", "s", "t", "r", "i", "n", "g", "."}
ToUpperCase[] †
- ToUpperCase[文字列1]は文字列1 に含まれる英小文字を全て英大文字に変換した文字列を返します。
ToLowerCase[] †
- ToLowerCase[文字列1]は文字列1 に含まれる英大文字を全て英小文字に変換した文字列を返します。
文字列の式としての評価 †
ToExpression[] †
Symbol[] †
- Symbol[文字列1]は文字列1をその名前とするシンボルを作り、それを評価します。