自分用によく使うメソッドなどをまとめてみる。気がついた事があったら追記予定。
基本
宣言
Unityscript では変数の宣言時に型を指定できる。
var hoge:String = "All your base are belong to us.";
キャスト
ToString メソッド使っておけば他の型から String へ変換できる。
例えば数値を文字列として連結する場合などは先にキャストしておかないと数式として処理される。
Time.deltaTime.ToString();
逆に String から他の型へ変換する際は parseInt, parseFloat などを使用する。
文字列連結
var hoge:String = "hello";
var fuga:String = "world";
Debug.Log(hoge + fuga); // helloworld
文字の長さ
ちゃんと多バイト文字も数えてくれる。
Debug.Log("May the Force be with you.".Length); // 26
Debug.Log("フォースと共にあらんことを".Length); // 13
文字列の比較
== で比較するか Compare, ToCompare, Equals メソッドが使える。
Debug.Log(String.Compare('nanodesu', 'nanodesu'));
Debug.Log("nanodesu".ToCompare('nanodesu'));
// 同じなら 0, 同じでなかったら0以外が返る
Debug.Log("nanodesu".Equals('nanodesu'));
// 同じなら true
メソッド
Unityscript ではメソッドは Pascal形式です。先頭大文字。
Format
var s:String = String.Format("{0} {1}", "Steve", "Jobs");
Debug.Log(s); // Steve Jobs
Concat
var s:String = String.Concat("Bill", "Gates");
Debug.Log(s); // BillGates
Substring 文字列の一部を取得
書式:String.Substring(begin:int, length:int)
var s:String = "I'll be back.";
s.Substring(8, 4); // back
Split 文字列の分割
書式:String.Split(delimiter:String)
var s:String = "You talking to me?";
var a = s.Split(" "[0]);
// a[0] = "You", a[1] = "talking"
Split の引数に " "[0] と指定してあるのは一見不思議にみえるがちゃんと理由はある。C# における Split メソッドのうち引数を一つとるものは Char 型しかうけつけないが Unityscript で文字列を表現しようとすると "(ダブルクォーテーション)及び ' (シングルクォーテーション) どちらで囲っても String 型と認識されてしまう。なので String 型の一つ目の要素を取り出す、という動作を用いて Char に変換している。(という解釈であってるかな??)
Replace 文字列の置換
書式:String.Split(before:String, after:String)
var s:String = "Beam me up,Scotty.";
s = s.Replace("Scotty", "Tom"); // "Beam me up,Tom."
IndexOf 文字の位置を取得
書式:String.IndexOf(index:int)
var s:String = "Frankly,my dear,I don't give a damn.";
var i:int = s.IndexOf(","); // 7
var j:int = s.LastIndexOf(","); // 15