📢 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>
  <source lang="c#">
  <syntaxhighlight lang="c#">
  using System;
  using System;
  using System.Text;
  using System.Text;
23行目: 23行目:
     }
     }
  }
  }
  </source>
  </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>
  <source lang="c#">
  <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);
  </source>
  </syntaxhighlight>
<br>
<br>
* 文字列補間(String Interpolation)を使用する。
* 文字列補間(String Interpolation)を使用する。
パラメータ指定子は、置換したい変数が多い場合、パラメーター指定子と変数の対応関係が見辛い。<br>
パラメータ指定子は、置換したい変数が多い場合、パラメーター指定子と変数の対応関係が見辛い。<br>
この問題を解決するために、文字列補間と呼ばれる機能がC# 6.0から追加された。<br>
この問題を解決するために、文字列補間と呼ばれる機能がC# 6.0から追加された。<br>
  <source lang="c#">
  <syntaxhighlight lang="c#">
  Console.WriteLine($"1番目の値は{a}, 2番目の値は{b}, 3番目の値は{c}");
  Console.WriteLine($"1番目の値は{a}, 2番目の値は{b}, 3番目の値は{c}");
  </source>
  </syntaxhighlight>
<br>
<br>
* 連結演算子を使用する。
* 連結演算子を使用する。
連結演算子(+)は、文字列と文字列を接続するために使用する。<br>
連結演算子(+)は、文字列と文字列を接続するために使用する。<br>
連結演算子(+)を文字列と値に使用した場合、値は文字列に変換される。<br>
連結演算子(+)を文字列と値に使用した場合、値は文字列に変換される。<br>
  <source lang="c#">
  <syntaxhighlight lang="c#">
  Console.WriteLine("1番目の値は" + a + ", 2番目の値は" + b + ", 3番目の値は" + c);
  Console.WriteLine("1番目の値は" + a + ", 2番目の値は" + b + ", 3番目の値は" + c);
  </source>
  </syntaxhighlight>
<br>
<br>
'''※備考'''<br>
'''※備考'''<br>
105行目: 105行目:
書式設定フィールドの幅の値は、正の場合は右揃え、負の場合は左揃えを意味する。<br>
書式設定フィールドの幅の値は、正の場合は右揃え、負の場合は左揃えを意味する。<br>
もし、書式設定フィールドの幅よりも文字列が長い場合は、設定は無視される。(書式設定フィールドの幅は無効となる)<br>
もし、書式設定フィールドの幅よりも文字列が長い場合は、設定は無視される。(書式設定フィールドの幅は無効となる)<br>
  <source lang="c#">
  <syntaxhighlight lang="c#">
  Console.WriteLine("{0, 10:p}", 0.1234);
  Console.WriteLine("{0, 10:p}", 0.1234);
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


145行目: 145行目:
</center>
</center>
<br>
<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  namespace Format
  namespace Format
  {
  {
220行目: 220行目:
     }
     }
  }
  }
  </source>
  </syntaxhighlight>
<br>
<br>
'''精度指定子'''<br>
'''精度指定子'''<br>
232行目: 232行目:
<br>
<br>
以下のサンプルコードでは、書式指定子はd、精度指定子が6となり、10進数表示で6桁分確保される。<br>
以下のサンプルコードでは、書式指定子はd、精度指定子が6となり、10進数表示で6桁分確保される。<br>
  <source lang="c#">
  <syntaxhighlight lang="c#">
  Console.WriteLine("{0:d6}", 100);
  Console.WriteLine("{0:d6}", 100);
  </source>
  </syntaxhighlight>
出力は、以下のようになる。<br>
出力は、以下のようになる。<br>
  000100
  000100
269行目: 269行目:
</center>
</center>
<br>
<br>
  <source lang="c#">
  <syntaxhighlight lang="c#">
  namespace Coustom
  namespace Coustom
  {
  {
373行目: 373行目:
     }
     }
  }
  }
  </source>
  </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]]