・p.32「カスタム書式指定文字を使った書式の指定」から
p.32 カスタム書式指定文字を使った書式の指定
・書式のパターンの表記法の一つがプレースホルダ ・プレースホルダには、ゼロプレースホルダと、桁プレースホルダがある ・ゼロプレースホルダは指定したゼロの数より値が短いときに、ゼロで埋める形式 例:「0000.00」と指定して、1.2を渡すと「0001.20」となる ・桁プレースホルダは指定した#の数より値が短いときに、スペースで埋める形式 例:「####.##」と指定して、1.2を渡すと「 1.2 」となる ・上記は混在が可能で、全体の桁数を指定することも可能 ・どちらも、値が指定より長い場合は、プレースホルダにはならない ・なお、整数部でプレースホルダとプレースホルダの間にカンマを入れることで3桁カンマ区切りになる ・また、書式指定文字ではない文字を混在させて埋め込んだり、シングルコーテーションで囲むことで書式指定文字を通常文字にすることもできる
p.34 テキスト正誤
・実行結果の1行目の「0001.20」は10桁右詰めになる(左詰めになっているのは誤り)
p.33 text07.cs
//p.33 text07.cs
using System;
class Text07
{
public static void Main()
{
Console.WriteLine("{0, 10:0000.00}", 1.2); //「 0001.20」となる
Console.WriteLine("{0, 10:####.##}", 1.2); //「 1.2」となる
Console.WriteLine();
Console.WriteLine("{0, 10:0,0}", 123456); //「 123,456」となる
Console.WriteLine("{0, 10:#,#}", 123456); //「 123,456」となる
Console.WriteLine();
Console.WriteLine("{0, 10:0,00000000.00}", 123456); //「000,123,456.00」となる
Console.WriteLine("{0, 10:#,########.##}", 123456); //「 123,456 」となる
Console.WriteLine();
Console.WriteLine("{0:(000)####-####}", 1132104566); //「011)3210-4566」となる
Console.WriteLine("{0, 20:'##'0.00}", 123456); //「 ##123456.00」となる
}
}
p.34 ユーザの入力を知る
・Console.WriteLineの反対がConsole.ReadLineで、コンソールからの実行中の文字列入力が可能
・「Console.ReadLine()」が実行されると、プログラムは一時停止してコンソールからの入力待ちになる
・そしてEnterキーが押されるまで先にすすまない
・Enterキーの前に入力された文字列がプログラムに渡されて、Console.ReadLine()メソッドの戻り値になる
・この戻り値のデータ型はstring(文字列)型なので、string型の変数を用いて受け取ると良い
例:
string ans; //受け取りに用いるstring(文字列)型の変数の宣言
ans = Console.ReadLine(); //入力された文字列が得られたら、ansに代入
・このまま実行すると真っ黒なコンソールが表示されるだけになり、分かりづらいので、
通常「Console.ReadLine();」の実行前に「Console.Write("案内の文字列");」を実行することが多い
例:
string ans; //受け取りに用いるstring(文字列)型の変数の宣言
Console.Write("お名前:"); //「お名前:」と表示(改行しない)
ans = Console.ReadLine(); //入力された文字列が得られたら、ansに代入
アレンジ演習:p.35 readline01.cs
・実行結果が下記のようになるよう拡張しよう あなたのファーストネームは:Amuro あなたのセカンドネームは:Ray あなたが Amuro Ray さんですね。 ・変数nameをファーストネームのfnameと、セカンドネームのsnameの2つにすると良い
作成例
//アレンジ演習:p.34 readline01.cs
using System;
class readline01
{
public static void Main()
{
string fname, sname; //【変更】文字列型の2変数の宣言
Console.Write("あなたのファーストネームは何ですか--- "); //【変更】
fname = Console.ReadLine(); //【変更】入力待ちになりEnterを押すと文字列が得られるので代入
Console.Write("あなたのセカンドネームは何ですか--- "); //【変更】
sname = Console.ReadLine(); //【変更】入力待ちになりEnterを押すと文字列が得られるので代入
Console.WriteLine("あなたのお名前は{0} {1}さんですか", fname, sname); //【変更】代入された文字列と表示
}
}
p.36 練習問題 ex02.cs ヒント
・p.34 readline01.cs をシンプルにすれば良い
作成例(通常版)
//p.36 練習問題 ex02.cs
using System;
class ex02
{
public static void Main()
{
string s; //文字列型の変数の宣言
s = Console.ReadLine(); //入力を得る
Console.WriteLine(s); //入力された文字列をそのまま表示
}
}
作成例(ややシンプルバージョン:入力文字列で初期化)
//p.36 練習問題 ex02.cs
using System;
class ex02
{
public static void Main()
{
string s = Console.ReadLine(); //入力された文字列で初期化
Console.WriteLine(s); //入力された文字列をそのまま表示
}
}
作成例(超シンプルバージョン:入力内容をそのまま表示)
//p.36 練習問題 ex02.cs
using System;
class ex02
{
public static void Main()
{
Console.WriteLine(Console.ReadLine()); //入力された文字列をそのまま表示
}
}