Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Java

Javaのprintfで右揃え(右詰め)や左揃え(左詰め)にフォーマットする方法

投稿日:2021年1月21日 更新日:

<目次>

(1) Javaのprintfで右揃えや左揃えにフォーマットする方法
 (1-1) 構文
 (1-2) 右揃えの方法
 (1-3) 左揃えの方法
 (1-4) 主要な変換文字(s,d,f,t)の意味

(1) Javaのprintfで右揃えや左揃えにフォーマットする方法

(1-1) 構文

Javaの「printf」文を使う事で、様々なフォーマットを指定して文字列の書式を整える事ができます。

printfには引数が異なる2種類のメソッドがあります。

//①
System.out.printf([フォーマット], [引数]);
//②
System.out.printf([ロケール], [フォーマット], [引数]);

 

違いはロケールの有無のみで、あとは同じです。各引数の意味は以下の通りです。

[フォーマット] 整形したい書式を指定します。

例:”X=%15f \n”
最初の「X=」は文字列で%の後ろの15が「桁数」を表しており、15桁に満たない場合は「右揃え」で左側を0埋めします。
15の後ろの「f」は「浮動小数点」のフォーマットである事を意味するため、引数には浮動小数点を与えます。また最後の「\n」は改行です。

[引数] フォーマット(書式整形)を行う対象の文字列を指定します。

目次にもどる

(1-2) 右揃えの方法

右揃えにするには指定するフォーマットに「左側をスペースで埋める」ように仕掛けをしていきます。
 
具体的には下記構文の「★」の箇所で「変換文字」(s,d,f,tなど)の前に「桁数」を指定してあげる事で、余った桁は自動でスペースを詰めてくれます。このs、d、f、tなどの意味は末尾の(1-4)にてご紹介します。
 
例えば、下記サンプルのフォーマットは「X=%-15f \n」を指定しており、「X=」の部分は固定の文字列で、%以降の部分を右詰めにします。「15f」は「15桁の浮動小数点」を意味しており、最大15桁までを「右揃え」で表示します。最後の「\n」は改行の出力をしています。
 
(構文)
printf("%[桁数★][変換文字列]", [数字/文字列]);

(サンプルプログラム)

public class IT0234_PrintfTest {
    public static void main(String args[]) {

        //### 浮動小数点
        //右詰め
        System.out.printf("X=%15f \n", 12.12);
        System.out.printf("X=%15.2f \n", 123.123);
        System.out.printf("X=%15f \n", 1234.1234);

    }
}

 

(図111)

目次にもどる

(1-3) 左揃えの方法

左揃えの場合、右揃えの時の「%」と[数字]の間にマイナス「-」を記述する事で、左揃えにする事ができます。
 
(構文)
printf("%-[桁数][変換文字列]", [数字/文字列]);

(サンプルプログラム)

public class IT0234_PrintfTest {
    public static void main(String args[]) {

        //### 浮動小数点
        //左詰め
        System.out.printf("X=%-15f \n", 12.12);
        System.out.printf("X=%-15f \n", 123.123);
        System.out.printf("X=%-15f \n", 1234.1234);

    }
}

 

(図121)

目次にもどる

(1-4) 主要な変換文字(s,d,f,t)の意味

主要な変換文字の意味は以下の通りです。
(表)

s 「String」のフォーマットです。
d 「10進数のint型」のフォーマットです。
f 「浮動小数点」のフォーマットです。

■桁数指定について
「浮動小数点」で桁数を指定する場合、小数点部分の表示桁数も指定する事ができます。

(構文)
“%[桁数].[小数点桁数]f”

(例)
System.out.printf(“%15.2f”,123.123)
→結果:「123.12」となる

t 「日時」のフォーマットです。

(サンプルプログラム)

public class IT0234_PrintfTest4 {
    public static void main(String args[]) {

        //### 「c」(Char)の例
        System.out.printf("#1 = %5c \n", 'a');
        System.out.printf("#1 = %5c \n", 'b');

        //### 「s」(String)の例
        System.out.printf("#1 = %10s \n", "abcde");
        System.out.printf("#1 = %10s \n", "abcdefghij");

        //### 「d」(10進数の数)の例
        System.out.printf("#1 = %10d \n", 12345);
        System.out.printf("#2 = %10d \n", 1234567890);

        //### 「f」(浮動小数点)の例
        System.out.printf("#3 = %10f \n", 12.12);
        System.out.printf("#3 = %10f \n", 123.123);

    }
}

(図141)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Java

執筆者:


comment

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

関連記事

Servlet/JSPで日本語文字が「???」になる問題とFilterの活用について

(0)目次&概説 (1) 事象 (2) 原因 (3) 対処方法1  (3-1) フィルタクラスの新規作成  (3-2) フィルタクラスへのコード追加  (3-3) 疎通確認テスト (4) 対処方法2 …

Twitter APIのRate Limit Exceedエラー(code – 88)の意味について

  <目次> (1) Twitter APIのRate Limit Exceedエラー(code – 88)の意味について  (1-1) APIコールのリミット(Rate Limit)につい …

Javaでdouble型での誤差を対処する方法について+サンプルプログラムも紹介

(1) Javaでの誤差の対処法  (1-1) 対処が必要なケース  (1-2) 対処の方法   (1-2-1) BigDecimalクラスでの対処   (1-2-2) int型を優先的に使い対処   …

Servlet(サーブレット)におけるフォワード(forward)とリダイレクト(redirect)の違い

<目次> (1) Servlet(サーブレット)におけるフォワード(forward)とリダイレクト(redirect)の違い  (1-1) フォワード(forward)とは?  (1-2) リダイレク …

JSP/Servletで画面毎のアクセスカウンターを作成してみた(パート1:仕様説明編)

(0)目次&概説 (1) 仕様について  (1-1) アーキテクチャ(アプリ/DB)  (1-2) アプリの仕様概要  (1-3) データベースの仕様概要 (2) ソースコード (3) エラー対応 ( …

  • English (United States)
  • 日本語
Top