文字列とは?
C#
における文字列とは、文字の連続を表すデータ型です。
文字列は通常、Unicode
文字のコレクションとして扱われ、文字列操作を簡単に行うための多くの機能が用意されています。
C#
では、文字列はstring
を使用して定義されます。
不変性
C#
の文字列は不変オブジェクトです。
一度作成された文字列の内容は変更できません。
文字列に変更を加える操作を行うと新しい文字列オブジェクトが作成され、元の文字列は変更されません。
文字列リテラル
ソースコード上で文字列を記述する場合、ダブルクォーテーション(”
)で囲みます。
string word = "Hell World!";
エスケープシーケンス
改行やタブなど、特殊文字を表示するためにエスケープシーケンスを使用できます。
string path = "C:\\Users\\UserName\\Data";
逐語的文字列リテラル
文字列の前に@
をつけることで、エスケープシーケンスを無効に出来ます。
これによりファイルパスのような文字列を簡単に記述できます。
string path = @"C:\Users\UserName\Data";
文字列補間
C#6.0以降では、文字列補間を使って、簡単に変数の値を代入することができます。
補間には文字列の前に$を使用します。
int hp = 50;
string health = $"HP : {hp} pt";
// HP : 50 pt
文字列を操作する
文字列を操作するためのメソッドやプロパティが多く提供されています。
文字数を取得
Length
プロパティで文字列の長さを取得できます。
string text = "Sample";
Debug.Log(text.Length); // 6
部分的な文字列を取得
Substring
メソッドを使って、文字列の一部を取得します。
引数には先頭からの開始位置と文字数を指定します。
string text = "One Two Three";
Debug.Log(text.SubString(4, 3)); // Two
大文字、小文字の変換
アルファベットの場合、大文字と小文字を変換できます。
string text = "Hello";
string upperText = text.ToUpper(); // HELLO
string lowerText = text.ToLower(); // hello
文字列を含んでいるか
Contains
メソッドを使用して、指定した文字列が含まれているかを確認出来ます。
同様にStartsWith
メソッドを使用するとその文字列から始まっているかを、
EndsWith
メソッドだとその文字列で終わっているかを確認出来ます。
string text = "Hello World.";
bool contains = text.IsContains("World"); // true
bool isStart = text.StartsWith("Hello"); // true
bool isEnd = text.EndsWith("World"); // false
検索
IndexOf
メソッドを使用して指定した文字列が含まれている場合開始位置を取得できます。
含まれていない場合は-1を返します。
string text = "One Two Three";
int index = text.IndexOf("Three"); // 8
文字列を分割
Split
メソッドで区切りになる文字を指定して分割することが出来ます。
string text = "One Two Three";
var values = text.Split(' '); // ["One", "Two", "Three"]
文字列を結合
Join
メソッドに間に挟む文字列と、文字列のコレクションを指定して結合することが出来ます。
string[] words = { "One", "Two", "Three" };
text result = words.Join("/", words); // One/Two/Three
空白を削除
Trim
メソッドで前後の空白を削除できます。
string text = " Hello ";
Debug.Log(text.Trim()); // Hello
文字列を置き換える
Replace
メソッドで指定した文字列を別の文字列に置き換えることが出来ます。
string text = "One Two Three";
Debug.Log(string.Replace(text, "Two", "Ten"); // One Ten Three
まとめ
Unityでは文字列を扱う場面が非常に多く存在します。
画面に表示するテキストやユーザー向けの長文、ファイル名やアセット名、さらには通信のレスポンスデータなど、
さまざまな用途で文字列を操作する必要があります。
また、CSV
やJSON
といったテキスト形式のデータを取り扱うことも多いでしょう。
C#には文字列を効率的に操作するための便利な機能が豊富に用意されています。
これらを活用することで、作業効率やコードの可読性を大きく向上させることができます。
なお、頻繁に文字列を変更するような場面では、StringBuilder
を使用することでパフォーマンスを最適化できる場合もあります。
適切な方法を選び、効率的な文字列操作を目指しましょう。