web-dev-qa-db-ja.com

JavaでString.format()を使用する方法

私はJavaの初心者であり、newbostonのJavaチュートリアル(youtube)を使用しています。チュートリアル36-37で、彼はString.format();を使い始めましたが、これについては説明していません過去のチュートリアルこれは、彼が作成していたクラスのコードです。

    public class tuna {
        private int hour;
        private int minute;
        private int second;

        public void setTime(int h, int m, int s){
            hour = ((h >= 0 && h < 24) ? h : 0);
            minute = ((m >= 0 && m < 60) ? m : 0);
            second = ((s >= 0 && s < 60) ? s : 0);
        }

        public String toMilitary(){
            return String.format("%02d:%02d:%02d", hour, minute, second);
        }
    }

つまり、彼がしていることは、ある種の軍用タイムクラスを行い、文字列フォーマットを使用していることです。だから私が求めているのは、誰かがString.format()がどのように機能し、上記のフォーマットがどのように機能するかを私に説明できるかどうかです。助けてくれてありがとう!

23
Lemmy301

Cのprintf()と同じように動作します。

_%s for String 
%d for int 
%f for float
_

先に

String.format("%02d", 8)

出力:_08_

String.format("%02d", 10)

出力:_10_

String.format("%04d", 10)

出力:_0010_

したがって、基本的には、2番目の引数として指定された式、変数、またはプリミティブ型の前に0の数を埋めます。0は、すべての桁が文字列APIのフォーマットメソッドの最初の引数を満たすように埋め込まれます。

38
Hiren

変数hourminute、およびsecondを取り、05:23:42の形式にします。多分別の例はこれでしょう:

String s = String.format("Hello %s answered your question", "placeofm");

文字列を印刷してコンソールに表示すると、次のようになります。

System.out.println(s);

こんにちはplaceofmはあなたの質問に答えました

プレースホルダー%02dは2桁の10進数です。 %sは、上記のサンプルの私の名前のような文字列です。学習したい場合Javaあなたはドキュメントを読む必要があります。 ここではStringクラス用です 。このドキュメントを読むことは、Javaでさえも重要ではありません。

11
placeofm