C Sharpの基礎 - 文字列
Console.ReadLineメソッド
Console.ReadLineメソッドは、入力された文字を1行読み取る。(戻り値はstring型)
int型を扱う場合は、型変換を行う必要がある。
using System;
using System.Text;
namespace ReadLine
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("あなたは何歳ですか?");
var age = int.Parse(Console.ReadLine());//string→int型に型変換
Console.WriteLine("あなたの国の平均寿命は何歳ですか?");
var average_age = int.Parse(Console.ReadLine());
int yourlife = average_age - age;
Console.WriteLine($"あなたはあと{yourlife}年生きれるでしょう");
}
}
}
エスケープシーケンス
エスケープシーケンスとは、通常の文字列では表せない特別な機能または特別な文字を表現するものである。
- 特別な機能
- 改行(\n)やタブ(\t)などがある。
- 特別な文字
- 通常であれば、プログラム上で特別な意味を持つ言葉を、単純な文字として表現する。
例えば、2重引用符(")を使用して単純な文字として扱う場合は、\"とする。
- 通常であれば、プログラム上で特別な意味を持つ言葉を、単純な文字として表現する。
エスケープシーケンス | 文字名 |
---|---|
\' | 単一引用符(') |
\" | 二重引用符(") |
\\ | 円記号(\) |
\0 | null文字 |
\a | アラート音(警告) |
\b | バックスペース |
\f | 改ページ(フォームフィード) |
\n | 改行 |
\r | 復帰(キャリッジリターン) |
\t | 水平タブ |
\v | 垂直タブ |
数値を文字列として出力
- パラメータ指定子を使用する。
{0}のところにはaの値が、{1}のところにはbの値、{2}のところにはcの値が入る。
{0}や{1}の0の部分をパラメータ指定子と呼ぶ。
Console.WriteLine("1番目の値は{0}, 2番目の値は{1}, 3番目の値は{2}", a, b, c);
- 文字列補間(String Interpolation)を使用する。
パラメータ指定子は、置換したい変数が多い場合、パラメーター指定子と変数の対応関係が見辛い。
この問題を解決するために、文字列補間と呼ばれる機能がC# 6.0から追加された。
Console.WriteLine($"1番目の値は{a}, 2番目の値は{b}, 3番目の値は{c}");
- 連結演算子を使用する。
連結演算子(+)は、文字列と文字列を接続するために使用する。
連結演算子(+)を文字列と値に使用した場合、値は文字列に変換される。
Console.WriteLine("1番目の値は" + a + ", 2番目の値は" + b + ", 3番目の値は" + c);
※備考
ToStringメソッドを使用すると、値型を文字列型へ変換できる。
ToStringメソッドの引数を指定しない場合は、値を文字列へ単純に変換する。
値型の変数名.ToString();
書式指定子を使用する場合は、以下のように引数を指定する。
値型の変数名.ToString("書式指定子");
また、String.Formatメソッドも値型を文字列型へ変換する時に使用することができる。
書式指定子に関しては、こちらのページを参照する。
出力する文字列の幅や右左揃えの指定
文字列を出力する時、書式を指定したい場合がある。
書式を指定する場合は、以下のような項目で指定できる。
{パラメーター指定子, 書式設定フィールドの幅:書式指定文字列}
以下の記述では、0番目のパラメータ指定子に0.1234を入れて、右揃えで文字幅を10確保し、パーセント表示することを意味する。
書式設定フィールドの幅の値は、正の場合は右揃え、負の場合は左揃えを意味する。
もし、書式設定フィールドの幅よりも文字列が長い場合は、設定は無視される。(書式設定フィールドの幅は無効となる)
Console.WriteLine("{0, 10:p}", 0.1234);
書式を指定して数値を文字列へ変換
数値の書式指定には、"標準の数値書式指定文字列"と"カスタム数値書式指定文字列"という2種類がある。
また、標準の数値書式指定文字列は、"書式指定子"と"精度指定子"の組み合わせから成る。
標準の数値書式指定文字列
書式指定子
書式指定子には、以下のようなものがある。
更に詳しく知りたい場合は、MSDNを参照する。
書式指定子 | 意味 |
---|---|
c(C) | 通貨 |
d(D) | 10進法表示(整数のみ) |
e(E) | 浮動小数点による指数表示 |
f(F) | 固定小数点による指数表示 |
g(G) | eまたはfのうち簡潔な表示 |
n(N) | 桁区切りされた表示 |
p(P) | パーセント表示 |
r(R) | 変換後の文字列が、変換前の数値に戻れる必要な桁数を確保して表示 (Single型、Double型、BigInteger型のみ) (Single型は最大9桁、Double型は最大17桁まで確保する) |
x(x) | 16進数表示(整数のみ) |
セル内のテキスト | セル内のテキスト |
精度指定子
精度指定子は、数値の精度を指定するために使用する。
精度指定子には、0 - 99の整数が入る。また、設定しない場合は既定値が使用される。
※注意
ラウンドトリップ書式指定子r(R)については、精度指定子を指定する必要がないので、指定した場合は無視される。
以下のサンプルコードでは、書式指定子はd、精度指定子が6となり、10進数表示で6桁分確保される。
Console.WriteLine(“{0:d6}”, 100);
出力は、以下のようになる。
000100
カスタム数値書式指定文字列
カスタム数値書式指定文字列は、1つ以上のカスタム数値書式指定子で構成される。
カスタム数値書式指定子には、以下のようなものがある。
更に詳しく知りたい場合は、MSDNを参照する。
書式指定子 | 意味 |
---|---|
0 | 対応する位置に数字がない場合、0に置き換える |
# | 対応する数字がある場合#を数字に置き換える。 |
.(ドット) | 小数点 |
,(カンマ) | 桁区切り |
% | 100を乗じて、%(パーセント記号)をつける。 |
‰ | 1000を乗じて、‰(パーミル記号)をつける。 |
E0 | 指数表示 |
\ | カスタム書式指定子を単なる文字として解釈する。 |
;(セミコロン) | 正、負、ゼロの場合に対してそれぞれ異なる書式指定子を指定したい時に使用 |