3

特定の整数の桁数を数える方法が必要です。負の数でも機能するはずです。何か案は?

4

9 に答える 9

3

-絶対値関数は存在する場合を取り除き、残りは他の回答と同様です。

String.valueOf(Math.abs(number)).length();
于 2013-05-22T08:45:32.637 に答える
2

最速の方法:

    public final static int[] sizeTable = { 9, 99, 999, 9999, 99999, 999999,
        9999999, 99999999, 999999999, Integer.MAX_VALUE };

    public static int getSize(int d) {
    if (d == Integer.MIN_VALUE)
        return 10;
    if (d < 0) {
        d = -d;
    }
    for (int i = 0;; i++)
        if (d <= sizeTable[i])
            return i + 1;
}

それは以下に触発されていIntegerます:

 static int stringSize(int x) {
    for (int i=0; ; i++)
        if (x <= sizeTable[i])
            return i+1;
}
于 2013-05-22T08:44:27.070 に答える
0

これはうまくいくはずです:

digitCount = String.valueof(number).length();
if(number < 0 ) digitCount--;
于 2013-05-22T08:44:16.850 に答える
0
 Integer i=new Integer(340);
      if(i<0)
      System.out.println(i.toString().length()-1);
      else
          System.out.println(i.toString().length()); 
于 2013-05-22T08:48:50.103 に答える
0
public class Test
{
     public static void main(String []args)
     {
         int n = 423;
         int count = 0;

         while(n != 0) 
         {
             n = n / 10;
             count++;
         }
         System.out.println(count);
     }
}
于 2013-05-22T08:57:34.683 に答える