2017-11-02 5 views
-1
int a=000123,b=1 
int len=(int)Math.log10(a)+1; 
while((a=a/10)!=0) 
{ 
    ++b; 
} 
System.out.println("Number of Digits:"+b); 

出力: 桁数:3 左側にある場合はゼロをカウントしません。ゼロの数字も数える方法はありますか?数字がゼロから始まる場合、整数の数字の桁数を調べる方法は?

+3

'int'の代わりに' String'を使います。先行0は、Javaで考えているのとは異なる意味を持っています。 – Eran

+2

これを達成するには文字列を使用する必要があります。整数は先行ゼロを保存しません。 –

+0

注意してください。 '000123'(javaは8進数と考える)は実際には83(10進数)です。 – byxor

答えて

-1

こんにちは、私はあなたがする 最善のことは、文字列として番号を取得し、あなたが物事

+0

「キャスト」という単語を使用するように注意してください。代わりに 'Integer.parseInt'が必要です。 – byxor

+0

があなたのサイドライトかもしれませんが、私はロジックが何ですか? –

+0

はいshureあなたは正しい古いhabbitsnです私は答えを –

0

を計算したいときnteger.parseIntを使ってint型にキャストしていることを行うことができるとは思わないそのint型の場合(そして文字列ではない)、それを定義したときに正面にいくつのゼロが格納されているかは記憶されません - 0001230123とまったく同じです。しかし、ゼロ(1つまたは複数)を使用して数値を開始すると、数値を8進表記で定義していることを意味します。したがって、int a=000123; System.out.println(a);83を出力します。

+0

変更しますが、それは整数としてだけ取る –

+0

申し訳ありませんが、私はあなたのコメントの意味を得ていません。 – Lars

+0

a = 000123は整数としてのみ扱われます –

関連する問題