私は次のロングを持っています:201700112345
、それを2017.001.12345
に変換します。Long/Stringにドットを追加するString.format
long l = 201700112345L;
String s = Long.toString(l);
String result = s.substring(0,4)+"."+s.substring(4,7)+"."+s.substring(7);
しかし、私はまたString.format
EDITでこれを達成することができます::シングル入力..with String.format
方法の目的は、可変引数パラメータの
は、私はちょうど部分文字列を使用することができます知っていますか?
私が試したいくつかの点:
String.format("%4d.%3d.%5d", l);
// Which resulted in:
java.util.MissingFormatArgumentException: Format specifier '%3d'
私は唯一の代わりに3の1つの入力を持っているので、私は実現はかなり明白..です
私は私が使用して同じ入力に後戻りすることができます知っています%1$
は、私は、次に試した:
String.format("%4d.%1$3d.%1$5d", l);
// Which resulted in:
201700112345.201700112345.201700112345
私は、正しい長さではなく、正しい部品を得た、これを、試み
String.format("%.4s.%1$.3s.%1$.5s", Long.toString(l));
// Which resulted in:
2017.201.20170
私はすべてのことが多いString.format
を使用していない認めなければならないので、私はそれが形式としてサブのいくつかの種類を持っていることも可能ですすぎるよく分かりません。そして、それが可能であるならば、私はそれを把握することはできません。..
"これは、String.format("%s。%s。%s "、s.substring(0、4)、s.substring(4、 7)、s.substring(7)) 'である。 –
[このような質問](https://stackoverflow.com/questions/5114762/how-do-format-a-phone-number-as-a-string-in-java)のようなものがあなたを助けることができますダッシュの代わりに点)。 – Nino
@AndyTurner Hehe、ええ、私はそれのように可能性があることを知っています。 ;)私の質問を編集しました。 –