2014年9月9日火曜日

Maxscript その5 「文字列 string値」

詳しくは「値>基本的なデータ値>文字列値」参照


※スクリプトは書いて保存したらそれ自体がメモになるので、必要以上に命令を覚えようと頑張ることはないと思うんだ。なんかそんな命令があったな。使ったな。位でいいと思う。使う頻度が高ければ自然と覚えると思うし。コード書くのが専門の人はまたちょっと違うかもだけど。


基本的に、以下で紹介している命令の結果は変数に代入する事が出来る。
また、繰り返しになるけど命令の大文字小文字は関係ないようだ。(文字列String値は別)

<代表的な文字列の操作>

異なる型への変換
<String> as <型>


文字数の取得
<String>.count


左からN番目の文字を取得する
(Maxscript文化その1、インデックスの基数は基本的に1)
ちなみにfloatの値を入力するとエラーは出さず強制的にintegerにして実行するようだ。

<string>[integer]

右からの場合・・・


大文字/小文字の変換
toLower <String>
toUpper <String>


文字列を探す 
左からN番目を返す
findString <String> <探したい文字列>


文字列の分解
FilterString <string1> <string2>

<String1>を<string2>で分解した配列を返す


文字列の置換
replace <string1> <integer1> <integer2> <string2>

<string1>の左<integer1>番目から<integer2>文字を<string2>に置き換えた文字列を取得

Yamagishiの左3番目から6文字をshiganに置き換える。

文字列の置換2
substituteString <Source_string> <from_String> <to_string>

substituteString "Yamagishi" "a" "1"
"Y1m1gishi"

文字列の挿入(replaceの<integer2>を0に設定する)
replace <string1> <integer1> 0 <string2>
左から3番目の前に"YaYaYa!"を挿入


文字列の抜出し
substring <string> <integer1> <integer2>

<string>の左<integer1>番目から<integer2>文字を抜き出す。
<integer2>が負の場合、<integer1>から最後まで。




文字列をスクリプトコードとして実行
execute <String>


---------------------------------
エスケープシーケンスについて
「リファレンス>名前、リテラル定数>リテラル定数>文字列リテラル」

¥は文字列内で特別な文字や改行などを表すのに用いられる。

文字列内で改行や""を表記出来る。とても便利。

一方で、以下のような問題が起きることがある。
ディレクトリパスを扱う際などに\tはタブを表しているので、場合によっては問題となる事がある。


同じ理由で\nは改行になってしまう。

こういう場合は\を\\と表記するか、文字列の頭に@を付けて
RawStringとして扱うとよいらしい。




0 件のコメント:

コメントを投稿