Unityscript の文字列操作

シェアする

自分用によく使うメソッドなどをまとめてみる。気がついた事があったら追記予定。

Sponsored Links

基本

宣言

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
Sponsored Link

シェアする

フォローする