|
2.8.6 発展:文字列の中の改行とタブの指定

文字列の中の改行とタブの指定法
入力する文字列は1行だが,改行コードを入れたので,表示では2行になる.
In[1]:= "第1行.\n第2行."
Out[1]= 
入力形で見てみると確かに改行コードが入っている.
In[2]:= InputForm[%]
Out[2]//InputForm= "第1行.\n第2行."
長い文字列をMathematicaに入力するとき,途中で改行して数行に分けて入力するとやりやすい.実際に,入力時に分割しても構わないが,通常の文字列は改行による分割点はMathematicaでは無視される.また,Mathematicaの出力では,表示のため文字列が任意の場所で分割されることもある.
通常の入力では,改行してもMathematicaでは無視される.タブも同様に無視される.
In[3]:= "文字列が
2行にある."
Out[3]= 
文字列の内容を確認してみる.なるほど,分割点がなくなっている.
In[4]:= InputForm[%]
Out[4]//InputForm= "文字列が 2行にある."

文字列の入力法
バックスラッシュでくくり,改行を保持するよう指定する.
In[5]:= "\<文字列が
2行にある.\>"
Out[5]= 
確認してみる.改行した位置には改行コード \nが挿入されている.
In[6]:= InputForm[%]
Out[6]//InputForm= "文字列が\n2行にある."
タブや改行コードを挿入することでMathematicaの出力表示をある程度まで制御することは可能であ る.しかし,あまりよい方法とはいえない.よりよい方法は,上級機能であるMathematicaの配置指定関数を使う方法である.後者を使えば,デバイス依存を持つタブの設定等に影響を受けずに一様な表示を常に行うことができる.以下に配置指定用の関数の使い方を見ていく.
改行コードのある文字列は常に左揃えで表示される.
In[7]:= {"1つの\n文字列が\nいくつかの行に.", "ここに\nもう1つ."}
Out[7]= 
そこで,関数ColumnFormを使って列揃えで表示する.この例では,列の右側に揃えるよう指定する.
In[8]:= ColumnForm[{"第1行", "第2", "第3"}, Right]
Out[8]= 
同じ関数を使い中央で揃える.
In[9]:= ColumnForm[{"第1行", "第2", "第3"}, Center]
Out[9]= 
上記の配置関数はMathematicaのセッション内だけで有効である.Mathematicaの出力を外部プログラム等で使うときは,普通は,タブや改行のバックスラッシュを使う必要があるだろう.
タブや改行を有効にするには,WriteStringかOutputFormを使って変換しておく.InputForm(入力形)ではバックスラッシュの文字列 \tや \n)として表示される.
文字列をファイルに書き出す.
In[10]:= "第1行.\n第2行." >> test
ファイルの中身を見てみる.>>を使うと通常は入力形で出力式が記述されることになる.
In[11]:= !!test
""第1行.\n第2行.""
ファイルに書く際に,故意に出力形を使うように指定する.
In[12]:= OutputForm["第1行.\n第2行."] >> test
今度は,改行が有効になっている.
In[13]:= !!test
"第1行.
第2行."
|