細 Wiki がページ「C Sharpの基本(文字列)」を「C Sharpの基礎 - 文字列」に、リダイレクトを残さずに移動しました |
|||
| 374行目: | 374行目: | ||
} | } | ||
</source> | </source> | ||
<br><br> | |||
== StringBuilderクラス == | |||
C#において、文字列を+で繋ぐ方法は処理に負担が掛かるため、速度を重視する場合は、StringBuilderクラスを使用する。<br> | |||
StringBuilderクラスのAppendメソッドを使用する場合、数100倍以上、処理速度が向上することがある。<br> | |||
<syntaxhighlight lang="c#"> | |||
using System.Text | |||
StringBuilder stb = new StringBuilder("今日の日付 : "); | |||
stb.Append(DateTime.Today); | |||
stb.Append("\n"); | |||
Console.WriteLine(stb.ToString()); | |||
</syntaxhighlight> | |||
<br><br> | |||
== 文字列の検索 == | |||
==== 前方一致 ==== | |||
文字列に特定の文字がどの位置に含まれているか確認する場合、IndexOfメソッドを使用する。<br> | |||
以下の例では、"あいうえお"の中に"う"は先頭の文字(0番目)から数えて2番目、"えお"は3番目、"か"および"いか"は存在しないため-1となる。<br> | |||
<syntaxhighlight lang="c#"> | |||
string str = "あいうえお"; | |||
Console.WriteLine(str.IndexOf("う")); | |||
Console.WriteLine(str.IndexOf("えお")); | |||
Console.WriteLine(str.IndexOf("か")); | |||
Console.WriteLine(str.IndexOf("いか")); | |||
# 出力 | |||
2 | |||
3 | |||
-1 | |||
-1 | |||
</syntaxhighlight> | |||
<br> | |||
==== 前方一致と後方一致 ==== | |||
文字列の検索において、前方一致や後方一致を指定して検索する場合、以下のように記述する。<br> | |||
<syntaxhighlight lang="c#"> | |||
string filename = “”abcde.txt””; | |||
if (filename.StartsWith("ab")) | |||
{ | |||
Console.WriteLine("前方一致"); | |||
} | |||
if (filename.EndsWith(".txt")) | |||
{ | |||
Console.WriteLine("後方一致"); | |||
} | |||
</syntaxhighlight> | |||
<br><br> | |||
== 空文字またはnullの確認 == | |||
空文字の確認を行う場合、String.Emptyメソッドを使用する。 | |||
また、空文字またはNULLの確認を行う場合、String.IsNullOrEmptyメソッドを使用する。<br> | |||
<syntaxhighlight lang="c#"> | |||
string str = ""; | |||
if (str == String.Empty) | |||
{ | |||
Console.WriteLine("空文字です。"); | |||
} | |||
str = null; | |||
if (String.IsNullOrEmpty(str)) | |||
{ | |||
Console.WriteLine("nullか空文字です。"); | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
また、空白文字またはNULLの確認を行う場合、String.IsNullOrWhiteSpaceメソッドを使用する。<br> | |||
<syntaxhighlight lang="c#"> | |||
string str = ""; | |||
if (String.IsNullOrWhiteSpace(str)) | |||
{ | |||
Console.WriteLine("nullか空白です。""); | |||
} | |||
</syntaxhighlight> | |||
<br><br> | |||
== 文字列の分割と結合 == | |||
文字列を指定した文字で区切り、区切った文字列を結合する。<br> | |||
<syntaxhighlight lang="c#"> | |||
string csv1 = "あああ,いいい,ううう"; | |||
// Splitメソッドで区切って配列aryValuesに変換 | |||
string[] aryValues = csv.Split(","); | |||
foreach(var value in aryValues) | |||
{ | |||
Console.WriteLine(value); | |||
} | |||
// JoinメソッドでCSV形式に変換 | |||
string csv2 = String.Join(",", ary); | |||
Console.WriteLine(join); | |||
# 出力 | |||
あああ | |||
いいい | |||
ううう | |||
あああ,いいい,ううう | |||
</syntaxhighlight> | |||
<br><br> | |||
== 文字列の部分抽出と部分削除 == | |||
==== 部分抽出 ==== | |||
文字列から一部を抽出する場合、以下のように記述する。<br> | |||
以下の例では、0番目の文字から数えて2番目の文字から2文字を抽出している。<br> | |||
<syntaxhighlight lang="c#"> | |||
string str = "あいうえお"; | |||
Console.WriteLine(str.Substring(2, 2)); | |||
# 出力 | |||
うえ | |||
</syntaxhighlight> | |||
<br> | |||
==== 部分削除 ==== | |||
文字列の前後の空白やエスケープシーケンスを削除する場合、以下のように記述する。<br> | |||
以下の例では、文字列の前後の全角半角スペースとエスケープシーケンスを削除しているが、途中にあるものは残ってしまう。<br> | |||
<syntaxhighlight lang="c#"> | |||
string str = "\t あ\nい う えお \n"; | |||
Console.WriteLine("." + str.Trim() + "."); | |||
# 出力 | |||
.あ | |||
い う えお. | |||
</syntaxhighlight> | |||
<br> | |||
以下の例では、指定した範囲を削除している。<br> | |||
0番目の文字から数えて、1番目から3番目の文字を削除している。<br> | |||
<syntaxhighlight lang="c#"> | |||
string str = "あいうえお"; | |||
Console.WriteLine(str.Remove(1,3)); | |||
# 出力 | |||
あお | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C_Sharp]] | [[カテゴリ:C_Sharp]] | ||