String.format
書式設定した文字列を作成します。
「String.format」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。
出力せずに書式設定する
printf はテキストをコンソールへ直接送ります。しかし、書式設定したテキストを String として保存、返却、再利用したい場合もあります。
String.format はまさにそのためのものです。同じルールを使いますが、出力する代わりに値を返します。
初めてのString.format
String.format は printf と同じプレースホルダーを使います。新しい文字列を作成して返します。
ここでは、結果を msg に保存してから出力します。
public class Main {
public static void main(String[] args) {
String msg = String.format("Hello, %s!", "World");
System.out.println(msg);
}
}同じ指定子
これまでに学んだことはすべて適用できます。%d、%f、%.2f、幅、フラグはすべて String.format で使えます。
唯一の違いは、結果が表示されるのではなく返されることです。
public class Main {
public static void main(String[] args) {
String s = String.format("%s: %.2f", "Price", 9.5);
System.out.println(s);
}
}結果を保存する
String を返すため、変数に保存したり、連結したり、別のメソッドに渡したりできます。
これはメッセージを段階的に作成するときに便利です。
public class Main {
public static void main(String[] args) {
String label = String.format("#%03d", 7);
System.out.println("ID " + label);
}
}書式設定したテキストを返す
メソッドで String.format を使い、整った文字列を返すことができます。これにより、書式設定のロジックを1か所にまとめられます。
次の例では、greet が書式設定したあいさつ文を返します。
public class Main {
static String greet(String name) {
return String.format("Welcome, %s!", name);
}
public static void main(String[] args) {
System.out.println(greet("Mia"));
}
}自動的に改行されない
printf と同様に、String.format は書式文字列に \n を記述しない限り、改行を追加しません。
結果を println で出力すれば、改行が追加されます。
public class Main {
public static void main(String[] args) {
String s = String.format("Line one");
System.out.println(s);
}
}複数の値
プレースホルダーの数だけ引数を渡せます。printf と同じように、引数は左から右へ各場所に入ります。
これにより、データの1行分を1つの文字列として簡単に作成できます。
public class Main {
public static void main(String[] args) {
String row = String.format("%s | %d | %.1f", "Tea", 3, 2.5);
System.out.println(row);
}
}書式を再利用する
書式文字列は単なるテキストなので、ループで何度も適用して、一貫した文字列を作成できます。
呼び出すたびに、新しい値を含む新しい文字列が返されます。
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 3; i++) {
System.out.println(String.format("Item %d", i));
}
}
}printfは内部でformatを使用する
内部的には、System.out.printf(fmt, args) は String.format(fmt, args) の結果を出力する場合と同じように動作します。
つまり、どちらを選ぶかは、今すぐ出力したいのか、それとも後で使うためにテキストを保持したいのかによって決まります。
ログとラベルを作成する
String.format は、正確なパターンが必要なログ行、UI ラベル、ファイル名の作成に便利です。
書式を一元管理すると、1か所の変更ですべてのメッセージを更新できます。
public class Main {
public static void main(String[] args) {
int code = 404;
String log = String.format("[ERROR %d] not found", code);
System.out.println(log);
}
}同じ型のルールが適用される
指定子と値のルールは同じです。%d には整数が必要で、%f には浮動小数点値が必要です。一致しない場合は実行時に例外が発生します。
実行する前に、組み合わせが正しいか再確認してください。
理解度チェック
String.format と printf の違いは何でしょうか。
まとめ
String.format は printf と同じルールを使いますが、保存、返却、再利用できる String を返します。
次は、幅と配置を組み合わせて整った表を作成します。
よくある質問
「String.format」レッスンは無料ですか?
はい。「String.format」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。
「String.format」で何を学びますか?
書式設定した文字列を作成します。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「String.format」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。