📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 文字列「<source lang」を「<syntaxhighlight lang」に置換 |
|||
| (同じ利用者による、間の3版が非表示) | |||
| 2行目: | 2行目: | ||
Console.ReadLineメソッドは、入力された文字を1行読み取る。(戻り値はstring型)<br> | Console.ReadLineメソッドは、入力された文字を1行読み取る。(戻り値はstring型)<br> | ||
int型を扱う場合は、型変換を行う必要がある。<br> | int型を扱う場合は、型変換を行う必要がある。<br> | ||
< | <syntaxhighlight lang="c#"> | ||
using System; | using System; | ||
using System.Text; | using System.Text; | ||
| 23行目: | 23行目: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 66行目: | 66行目: | ||
{0}のところにはaの値が、{1}のところにはbの値、{2}のところにはcの値が入る。<br> | {0}のところにはaの値が、{1}のところにはbの値、{2}のところにはcの値が入る。<br> | ||
{0}や{1}の0の部分をパラメータ指定子と呼ぶ。<br> | {0}や{1}の0の部分をパラメータ指定子と呼ぶ。<br> | ||
< | <syntaxhighlight lang="c#"> | ||
Console.WriteLine("1番目の値は{0}, 2番目の値は{1}, 3番目の値は{2}", a, b, c); | Console.WriteLine("1番目の値は{0}, 2番目の値は{1}, 3番目の値は{2}", a, b, c); | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
* 文字列補間(String Interpolation)を使用する。 | * 文字列補間(String Interpolation)を使用する。 | ||
パラメータ指定子は、置換したい変数が多い場合、パラメーター指定子と変数の対応関係が見辛い。<br> | パラメータ指定子は、置換したい変数が多い場合、パラメーター指定子と変数の対応関係が見辛い。<br> | ||
この問題を解決するために、文字列補間と呼ばれる機能がC# 6.0から追加された。<br> | この問題を解決するために、文字列補間と呼ばれる機能がC# 6.0から追加された。<br> | ||
< | <syntaxhighlight lang="c#"> | ||
Console.WriteLine($"1番目の値は{a}, 2番目の値は{b}, 3番目の値は{c}"); | Console.WriteLine($"1番目の値は{a}, 2番目の値は{b}, 3番目の値は{c}"); | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
* 連結演算子を使用する。 | * 連結演算子を使用する。 | ||
連結演算子(+)は、文字列と文字列を接続するために使用する。<br> | 連結演算子(+)は、文字列と文字列を接続するために使用する。<br> | ||
連結演算子(+)を文字列と値に使用した場合、値は文字列に変換される。<br> | 連結演算子(+)を文字列と値に使用した場合、値は文字列に変換される。<br> | ||
< | <syntaxhighlight lang="c#"> | ||
Console.WriteLine("1番目の値は" + a + ", 2番目の値は" + b + ", 3番目の値は" + c); | Console.WriteLine("1番目の値は" + a + ", 2番目の値は" + b + ", 3番目の値は" + c); | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
'''※備考'''<br> | '''※備考'''<br> | ||
| 105行目: | 105行目: | ||
書式設定フィールドの幅の値は、正の場合は右揃え、負の場合は左揃えを意味する。<br> | 書式設定フィールドの幅の値は、正の場合は右揃え、負の場合は左揃えを意味する。<br> | ||
もし、書式設定フィールドの幅よりも文字列が長い場合は、設定は無視される。(書式設定フィールドの幅は無効となる)<br> | もし、書式設定フィールドの幅よりも文字列が長い場合は、設定は無視される。(書式設定フィールドの幅は無効となる)<br> | ||
< | <syntaxhighlight lang="c#"> | ||
Console.WriteLine("{0, 10:p}", 0.1234); | Console.WriteLine("{0, 10:p}", 0.1234); | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 145行目: | 145行目: | ||
</center> | </center> | ||
<br> | <br> | ||
< | <syntaxhighlight lang="c++"> | ||
namespace Format | namespace Format | ||
{ | { | ||
| 220行目: | 220行目: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
'''精度指定子'''<br> | '''精度指定子'''<br> | ||
| 232行目: | 232行目: | ||
<br> | <br> | ||
以下のサンプルコードでは、書式指定子はd、精度指定子が6となり、10進数表示で6桁分確保される。<br> | 以下のサンプルコードでは、書式指定子はd、精度指定子が6となり、10進数表示で6桁分確保される。<br> | ||
< | <syntaxhighlight lang="c#"> | ||
Console.WriteLine("{0:d6}", 100); | Console.WriteLine("{0:d6}", 100); | ||
</ | </syntaxhighlight> | ||
出力は、以下のようになる。<br> | 出力は、以下のようになる。<br> | ||
000100 | 000100 | ||
| 269行目: | 269行目: | ||
</center> | </center> | ||
<br> | <br> | ||
< | <syntaxhighlight lang="c#"> | ||
namespace Coustom | namespace Coustom | ||
{ | { | ||
| 373行目: | 373行目: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
<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]] | ||