講義メモ

・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()); //入力された文字列をそのまま表示
    }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です