Java tutorial
//package com.java2s; /* * jPOS Project [http://jpos.org] * Copyright (C) 2000-2012 Alejandro P. Revilla * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ import java.util.StringTokenizer; public class Main { public static int[] toIntArray(String s) { StringTokenizer st = new StringTokenizer(s); int[] array = new int[st.countTokens()]; for (int i = 0; st.hasMoreTokens(); i++) array[i] = Integer.parseInt(st.nextToken()); return array; } /** * Converts a String to an integer of base radix. * <br><br> * String constraints are: * <li>Number must be less than 10 digits</li> * <li>Number must be positive</li> * @param s String representation of number * @param radix Number base to use * @return integer value of number * @throws NumberFormatException */ public static int parseInt(String s, int radix) throws NumberFormatException { int length = s.length(); if (length > 9) throw new NumberFormatException("Number can have maximum 9 digits"); int result = 0; int index = 0; int digit = Character.digit(s.charAt(index++), radix); if (digit == -1) throw new NumberFormatException("String contains non-digit"); result = digit; while (index < length) { result *= radix; digit = Character.digit(s.charAt(index++), radix); if (digit == -1) throw new NumberFormatException("String contains non-digit"); result += digit; } return result; } /** * Converts a String to an integer of radix 10. * <br><br> * String constraints are: * <li>Number must be less than 10 digits</li> * <li>Number must be positive</li> * @param s String representation of number * @return integer value of number * @throws NumberFormatException */ public static int parseInt(String s) throws NumberFormatException { return parseInt(s, 10); } /** * Converts a character array to an integer of base radix. * <br><br> * Array constraints are: * <li>Number must be less than 10 digits</li> * <li>Number must be positive</li> * @param cArray Character Array representation of number * @param radix Number base to use * @return integer value of number * @throws NumberFormatException */ public static int parseInt(char[] cArray, int radix) throws NumberFormatException { int length = cArray.length; if (length > 9) throw new NumberFormatException("Number can have maximum 9 digits"); int result = 0; int index = 0; int digit = Character.digit(cArray[index++], radix); if (digit == -1) throw new NumberFormatException("Char array contains non-digit"); result = digit; while (index < length) { result *= radix; digit = Character.digit(cArray[index++], radix); if (digit == -1) throw new NumberFormatException("Char array contains non-digit"); result += digit; } return result; } /** * Converts a character array to an integer of radix 10. * <br><br> * Array constraints are: * <li>Number must be less than 10 digits</li> * <li>Number must be positive</li> * @param cArray Character Array representation of number * @return integer value of number * @throws NumberFormatException */ public static int parseInt(char[] cArray) throws NumberFormatException { return parseInt(cArray, 10); } /** * Converts a byte array to an integer of base radix. * <br><br> * Array constraints are: * <li>Number must be less than 10 digits</li> * <li>Number must be positive</li> * @param bArray Byte Array representation of number * @param radix Number base to use * @return integer value of number * @throws NumberFormatException */ public static int parseInt(byte[] bArray, int radix) throws NumberFormatException { int length = bArray.length; if (length > 9) throw new NumberFormatException("Number can have maximum 9 digits"); int result = 0; int index = 0; int digit = Character.digit((char) bArray[index++], radix); if (digit == -1) throw new NumberFormatException("Byte array contains non-digit"); result = digit; while (index < length) { result *= radix; digit = Character.digit((char) bArray[index++], radix); if (digit == -1) throw new NumberFormatException("Byte array contains non-digit"); result += digit; } return result; } /** * Converts a byte array to an integer of radix 10. * <br><br> * Array constraints are: * <li>Number must be less than 10 digits</li> * <li>Number must be positive</li> * @param bArray Byte Array representation of number * @return integer value of number * @throws NumberFormatException */ public static int parseInt(byte[] bArray) throws NumberFormatException { return parseInt(bArray, 10); } }