Added method to convert a (decimal) String to Long

This commit is contained in:
Patrick Gotthard 2014-04-18 20:52:04 +02:00
parent 90a3792ccc
commit 25abc65f91
2 changed files with 51 additions and 0 deletions

View file

@ -0,0 +1,25 @@
package com.rometools.utils;
public final class Longs {
private Longs() {
}
/**
* Converts a String into a Long by first parsing it as Double and then casting it to Long.
*
* @param s The String to convert, may be null or in decimal format
* @return The parsed Long or null when parsing is not possible
*/
public static Long parseDecimal(final String s) {
Long parsed = null;
try {
if (s != null) {
parsed = (long) Double.parseDouble(s);
}
} catch (final NumberFormatException e) {
}
return parsed;
}
}

View file

@ -0,0 +1,26 @@
package com.rometools.utils;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import org.junit.Test;
public class LongsTest {
@Test
public void testParseDecimal() {
final String nullString = null;
final String emptyString = "";
final String longString = String.valueOf(Long.MAX_VALUE);
final String decimalString = String.valueOf(Double.MAX_VALUE);
assertThat(Longs.parseDecimal(nullString), is(nullValue()));
assertThat(Longs.parseDecimal(emptyString), is(nullValue()));
assertThat(Longs.parseDecimal(longString), is(Long.MAX_VALUE));
assertThat(Longs.parseDecimal(decimalString), is((long) Double.MAX_VALUE));
}
}