Mega Code Archive

 
Categories / Java / Data Type
 

Get Digit Number String

/*  * Copyright (c) 2003 - 2007 OpenSubsystems s.r.o. Slovak Republic. All rights reserved.  *   * Project: OpenSubsystems  *   * $Id: NumberUtils.java,v 1.9 2007/01/07 06:14:01 bastafidli Exp $  *   * This program is free software; you can redistribute it and/or modify  * it under the terms of the GNU General Public License as published by  * the Free Software Foundation; version 2 of the License.   *   * This program is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  * GNU General Public License for more details.  *   * You should have received a copy of the GNU General Public License  * along with this program; if not, write to the Free Software  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   */ import java.text.NumberFormat; /**  * Collection of useful utilities to work with numbers.   *   * @version $Id: NumberUtils.java,v 1.9 2007/01/07 06:14:01 bastafidli Exp $  * @author Peter Satury  * @code.reviewer Miro Halas  * @code.reviewed Initial revision  */ public final class NumberUtils {    // Constants ////////////////////////////////////////////////////////////////        /**     * Static array used to append leading 0 chars to file name constructed from     * number.     */    protected static final char[] ZEROCHARS = {'0', '0', '0', '0', '0', '0', '0', '0', '0', '0',                                               '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',                                               '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',                                               '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',                                               '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',                                              };    // Cached values ////////////////////////////////////////////////////////////        /**     * static Number format for no Exponent      */    public static final NumberFormat NFFORMAT;        /**     * static Number format for no Exponent for editing     */    public static final NumberFormat NFFORMATEDIT;    /**     * static Number format for Currency     */    public static final NumberFormat NFCURRENCYFORMAT;    /**     * static Number format for Currency for editing     */    public static final NumberFormat NFCURRENCYFORMATEDIT;    // Constructors /////////////////////////////////////////////////////////////        /**     * Static initializer.     */    static    {              NFFORMAT = NumberFormat.getNumberInstance();       NFFORMAT.setMaximumFractionDigits(20);              NFFORMATEDIT = NumberFormat.getNumberInstance();       NFFORMATEDIT.setMaximumFractionDigits(20);       NFFORMATEDIT.setGroupingUsed(false);       NFCURRENCYFORMAT = NumberFormat.getNumberInstance();       NFCURRENCYFORMAT.setMaximumFractionDigits(2);       NFCURRENCYFORMAT.setMinimumFractionDigits(2);       NFCURRENCYFORMATEDIT = NumberFormat.getNumberInstance();       NFCURRENCYFORMATEDIT.setMaximumFractionDigits(2);       NFCURRENCYFORMATEDIT.setMinimumFractionDigits(2);       NFCURRENCYFORMATEDIT.setGroupingUsed(false);    }    /**      * Private constructor since this class cannot be instantiated     */    private NumberUtils(    )    {       // Do nothing    }    // Public methods ///////////////////////////////////////////////////////////        /**     * Method to make Exponention     *      * @param iBbase - base of Exponention [1..]     * @param iExponent - exponent of Exponention [0..14]     * @return long - result of Exponention     * @throws IllegalArgumentException - in case of arguments out of valid range     */    public static long exponentiate(       int iBbase,        int iExponent    ) throws IllegalArgumentException    {       if (iExponent > 14 || iExponent < 0)       {          throw new IllegalArgumentException(                "Exponent could not be greater then 14 and lower then 0");       }       if (iBbase < 1)       {          throw new IllegalArgumentException(                "Exponentiate base could not be lower then 1");       }       long lReturn = 1;       for (int iCounter = 0; iCounter < iExponent; iCounter++)       {          try          {             lReturn = lReturn * iBbase;          }           catch (Exception eExc)          {             throw new IllegalArgumentException(                   "Exponentiate arguments too high");          }       }       return lReturn;    }    /**     * Method to make specified length digit number string representation from particular      * input number.     * For example, if there will be send input number 32 and digit lenhth = 8, output      * will be string '00000032'     *      * @param iInputNumber - input number that will be converted into 8 digit number      *                       string representation     * @param iDigitLength - length of the output digit number string     *      * @return String - digit number string representation     */    public static String getDigitNumberString(       int iInputNumber,       int iDigitLength    )    {       StringBuffer idString = new StringBuffer(Integer.toString(iInputNumber));              if (iDigitLength - idString.length() > 0)       {          idString.insert(0, ZEROCHARS, 0, iDigitLength - idString.length());       }       return idString.toString();    } }