Nanashi-softプログラマ専用PSSuite開発


◇PS Suite開発 -C#の文字列操作-

文字に関する様々な操作です

●文字列の宣言

string a = "mojiretu";
付属エディタで記述した場合,文字コードがUTF-8ですので日本語も使用できます
string a = "日本語でOK!";
・同じ文字で初期化
string a = string('A', 10);
aには "A"が 10コ入っている
ダンジョンデータとか生成する時に便利かも

●文字列に文字列定数を足す

string a = "mojiretu1";

a += "mojiretu2";	//後ろに足す
a = a + "mojiretu2";	//後ろに足す
a = "mojiretu2" + a;	//前に足す

●文字列の長さ

string a = "abc";
int b;

b = a.Length;

・全角も1文字と数えられます
string a = "文字列A";
int b;
b = a.Length;
結果 bは 4になる

●文字列の部分取り出し

string a = "abcde";
string b;

b = a.Substring(0, 2);	//先頭から2文字→ab
b = a.Substring(2, 3);	//2文字目から3文字→cde
b = a.Substring(3);	//3文字目以降全部→de

・全角も1と数えます
string a = "文字列A";
string b;

b = a.Substring(0, 2);	//先頭から2文字→文字
b = a.Substring(1, 2);	//2文字目から3文字→字列
b = a.Substring(1);	//3文字目以降全部→字列A

●特定の文字列で分割

string a = "文字列A\n文字列B";
string[] b;
string c;

b = a.Split('\n');	//改行コードで分割
c = b[0];	//cには『文字列A』が入る
※区切り文字は1文字しか使用できません(全角は使えます)

・文字列変数を引数に使いたい場合は[0]を付ければ良い
string a = "文字列A\n文字列B";
string[] b;
string c;
string kugiri = "\n";

b = a.Split(kugiri[0]);	//変数kugiriの先頭文字で分割
c = b[0];	//cには『文字列A』が入る

●文字列比較

原則として ==を使用する事を推奨します
string a="文字列A";

if(a == "文字列A"){
	//一致した
}else{
	//一致しなかった
}
・うまく比較できない場合はEqualsメソッドを使います
string a="文字列A";

if(a.Equals("文字列A")){
	//一致した
}else{
	//一致しなかった
}
なんか,==はオーバーロード実装で,Equalsはオーバーライド実装なので,==ではうまくいかない場合があるそうです(汗
とりあえず。文字列比較で変なバグが出たら Equalsメソッドにしてみれば解決するかも知れない。と覚えて置けば良いでしょう


●数値を文字列に代入

正確には,文字列に数値を加算することになります
int a = 123;
string b;

b = "" + a;
少数でも同じようにできます
float a = 123.45f;
string b;

b = "" + a;

●文字を数値に代入

・整数の場合
string a = "123";
int b;

try{
	b = int.Parse(a);
}catch{
	//エラー時:文字列が整数で無い時(少数の時もエラーになる)
}
・少数の場合
string a = "123.45";
float b;

try{
	b = float.Parse(a);
}catch{
	//エラー時:文字列が少数で無い時
}
○例外を発生させたくない場合はTryParseメソッドを使う
・整数の場合
string a = "123";
int b;

if(int.TryParse(a, out b)){
	//正常の時
	//bに結果の123が入っている
}else{
	//エラー時:文字列が整数で無い時(少数の時もエラーになる)
	//bには常に0が入っている
}
・少数の場合
string a = "123.45";
float b;

if(float.TryParse(a, out b)){
	//正常の時
	//bに結果の123.45が入っている
}else{
	//エラー時:文字列が少数で無い時
	//bには常に0が入っている
}

●文字列検索

string a = "文字列A\n文字列B";
int b;

b = a.IndexOf('\n');

●デバッグ出力

string debug = "mojiretu";
System.Console.WriteLine(debug);
※アプリケーション出力欄に表示されます
※日本語は全部化けてしまいます。ツールのフォント設定触ってみましたが解消されませんでした



TOPプログラマ専用PSSuite開発