package com.levelup.java.number; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.text.NumberFormat; import java.text.ParseException; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.junit.Test; import com.google.common.primitives.Doubles; /** * This java example will demonstrate * checking if a string is a number. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/is-string-numeric/'>Is string numeric</a> * */ public class IsStringANumber { @Test public void is_string_a_number_java () { boolean isANumber = false; String numberString = "1234.54"; try { Double.parseDouble(numberString); isANumber = true; } catch (NumberFormatException nfe) { // do nothing } assertTrue(isANumber); } @Test public void is_string_a_number_numberformat_java () { boolean isANumber = true; String numberString = "1234.54"; try { NumberFormat.getInstance().parse(numberString); } catch (ParseException nfe) { isANumber = false; } assertTrue(isANumber); } @Test public void is_string_a_number_java_with_char_array () { boolean isANumber = true; String numberString = "1234"; for (char c : numberString.toCharArray()) { if (!Character.isDigit(c)) { isANumber = false; } } assertTrue(isANumber); } @Test public void is_string_a_number_java_with_regular_expression () { boolean isANumber = false; String numberString = "1234.54"; if (numberString.matches("[+-]?\\d*(\\.\\d+)?")) { isANumber = true; } assertTrue(isANumber); } @Test public void is_string_a_number_guava () { Double parsedString = Doubles.tryParse("123234.54"); assertEquals(new Double(123234.54), parsedString); } @Test public void is_string_a_number_apache_commons_stringutils () { boolean isANumber = StringUtils.isNumeric("12345"); assertTrue(isANumber); } @Test public void is_string_a_number_apache_commons () { boolean isANumber = NumberUtils.isNumber("12345"); assertTrue(isANumber); } @Test public void is_formatted_string_a_number_apache_commons () { boolean isANumber = NumberUtils.isNumber("123123.45"); assertTrue(isANumber); } }