算術加算演算を実行していますが、値がまったくなくても演算中に一番左の0の全時間を保持したいと考えています。今計算中に左に0を保持する
まで
私の仕事私はlong
変数long a = 03338023709
を持っています。
私がしたときa + 1
; 3338023710
です。
は0
は全く価値がありませんが、私は03338023710
ない3338023710
ようにそれを維持したいと
を引き起こすたかったのです。
これを達成する方法を教えてください。
算術加算演算を実行していますが、値がまったくなくても演算中に一番左の0の全時間を保持したいと考えています。今計算中に左に0を保持する
まで
私の仕事私はlong
変数long a = 03338023709
を持っています。
私がしたときa + 1
; 3338023710
です。
は0
は全く価値がありませんが、私は03338023710
ない3338023710
ようにそれを維持したいと
を引き起こすたかったのです。
これを達成する方法を教えてください。
結果を印刷しているとします。それ以外の場合は、先行ゼロを維持しても意味がありません。その場合
、あなたはこれを行うことができます:
long a = 03338023709;
a = a + 1;
String string = valueOf(a);
string = "0" + string;
をし、それをプリントアウトしたり、あなたがのためにそれを必要とするものは何でもするために文字列を使用します。
Formatterも使用できます。
String.format("%011d", a+1);
03338023710
これは、全長を11文字(この場合は1を加算する)にするために、十分に左側に0を埋め込みます。
そうでない場合は、各番号の左に、単一のゼロを追加するために、あなたは11
これは、この方法の「長さ」や大きさをこのように修正することができるため、ホイールを再発明することなく、数字に「0」を加えるよりも優れています – Machinarius
の代わりに、数の長さプラス1を置くことができ、私はあなたので、先行ゼロを維持したいと仮定あなたの価値をString
に変換したい(そうでない場合は意味がありません)。 簡単な解決策は、最初に値を通常通り(たとえばInteger.toString(a)
)に変換して、String
が必要なだけ長くなるまで先行ゼロを追加することです。
String s = Integer.toString(a);
while(s.length() < stringLength){
s = "0" + s;
}
ところで '0'で始まる番号は、コンパイラによって進整数として解釈されます:あなたは、コードを使用することができ、あなたの希望する長さを含む
stringLength
と呼ばれる変数を持っていると仮定。 'long a = 03338023709'はコンパイルされません。 'long a = 3338023709L'を使用して、@Arpanが示唆するように出力をフォーマットします。 – Arjan-1を与える人は誰ですか?私の質問はあなたに奇妙に見えますか? –
downvoteボタンのツールチップテキストは* "この質問は研究努力を示していません;それは不明または役に立たない" *。そのうちの1つ、おそらく。既に半分ダース同様の質問をもたらす["一番左の0 javaを維持する](https://www.google.com/search?q=keep+the+leftmost+0+java)の簡単なgoogle検索などの努力あなたの質問はそれほど有用ではありません。あなたが十分な文脈を提供しなかったか、または提供された文脈が現実的でないためにおそらく不明瞭です。あなたは本当に番号がどのように格納されているか、または出力がどのように見えるかだけ気にしますか?または上記のすべて。誰が知っています:) – Arjan