私は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()がどのように機能し、上記のフォーマットがどのように機能するかを私に説明できるかどうかです。助けてくれてありがとう!
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のフォーマットメソッドの最初の引数を満たすように埋め込まれます。
変数hour
、minute
、および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でさえも重要ではありません。