文字列のフォーマット
CoddyのC#ジャーニー「基礎」セクションの一部 — レッスン 63/69。
C#では、String.Format() は、書式設定された文字列を作成するために使用される強力なメソッドです。これを使用すると、読みやすくカスタマイズ可能な方法で、テキストと変数を組み合わせることができます。このメソッドは、変数を文字列にどのように挿入するかを定義するために、書式指定子を使用します。
C#での文字列フォーマットの使い方を学びましょう:
String.Format() の基本構文は次のとおりです。
string formattedString = String.Format("format_string", arg0, arg1, ...);ここで:
format_string: テキストと書式指定子を含む文字列。arg0, arg1, ...:format_stringに挿入される変数。
書式指定子を見てみましょう。波括弧内の数字は、引数の位置を参照しています。
{0}: 最初の引数 (arg0) を参照します{1}: 2番目の引数 (arg1) を参照します{2}: 3番目の引数 (arg2) を参照します- など...
異なる型の引数を使用した簡単な例を試してみましょう:
string name = "Alice";
int age = 30;
double price = 19.99;
string formatted = String.Format("Name: {0}, Age: {1}, Price: {2}", name, age, price);
Console.WriteLine(formatted);このコードを実行すると、画面に次のように表示されます:Name: Alice, Age: 30, Price: 19.99
コロンの後に書式指定子を付けることで、さらに書式を制御できます。書式指定子は、文字(固定小数点数の F など)と、その後に続くオプションの精度を表す数値で構成されます:
// 数値を小数点以下2桁で書式設定する
double number = 123.4567;
string formatted = String.Format("The value is {0:F2}", number);
Console.WriteLine(formatted);このコードを実行すると、画面に次のように表示されます:The value is 123.46
F1、F2、F3などを使用して、異なる小数点以下の桁数を指定できます。
チャレンジ
簡単以下の引数を受け取る CreateFormattedString という名前のメソッドを作成してください:
- 文字列
productName。 - 整数
quantity。 - double型の
unitPrice。
このメソッドは、これらの値を以下の形式で組み合わせたフォーマット済み文字列を返す必要があります:
Product: [productName], Quantity: [quantity], Unit Price: [unitPrice]unitPrice は小数点以下5桁に、quantity は小数点以下1桁にフォーマットし(double型に変換してください)、productName の最初の文字は大文字にする必要があります。
例えば、productName が "laptop"、quantity が 3、unitPrice が 1299.9999 の場合、メソッドは以下を返す必要があります:
Product: Laptop, Quantity: 3.0, Unit Price: 1299.99990char型ではなくString型として最初の文字を抽出するには、
str.Substring(0,1)を使用してください。
チートシート
String.Format() メソッドは、書式指定子を使用してテキストと変数を組み合わせることで、書式設定された文字列を作成します。
基本的な構文:
string formattedString = String.Format("format_string", arg0, arg1, ...);書式指定子は、位置番号を含む波括弧を使用します。
{0}: 第1引数{1}: 第2引数{2}: 第3引数
複数のデータ型を使用した例:
string name = "Alice";
int age = 30;
double price = 19.99;
string formatted = String.Format("Name: {0}, Age: {1}, Price: {2}", name, age, price);
Console.WriteLine(formatted); // 出力: Name: Alice, Age: 30, Price: 19.99コロンを使用した精度制御付きの書式指定子:
double number = 123.4567;
string formatted = String.Format("The value is {0:F2}", number);
Console.WriteLine(formatted); // 出力: The value is 123.46F1、F2、F3 などを使用して、異なる小数点以下の桁数を指定できます。
最初の文字を文字列として抽出するには: str.Substring(0,1)
自分で試してみよう
using System;
public class Program {
public static string CreateFormattedString(string productName, int quantity, double unitPrice) {
// ここにコードを記述してください
}
public static void Main(string[] args) {
string product = Console.ReadLine();
int qty = int.Parse(Console.ReadLine());
double price = double.Parse(Console.ReadLine());
string formattedString = CreateFormattedString(product, qty, price);
Console.WriteLine(formattedString);
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。