Browse Source

Amending function parseInt

feature-nr-renew
LO Kam Tao Leo 3 years ago
parent
commit
e8dfee5c9d
  1. 17
      src/main/java/org/leolo/nrdatad/util/JSONUtil.java
  2. 14
      src/test/java/org/leolo/nrdatad/util/JSONUtilTest.java

17
src/main/java/org/leolo/nrdatad/util/JSONUtil.java

@ -8,8 +8,23 @@ public class JSONUtil {
static Logger log = LogManager.getLogger();
public static int parseInt(String val){
//Throw exception for empty string, or just a plus sign to maintenance backward
//compatibility with previous version.
if(val.length()==0 || "+".equals(val)){
throw new NumberFormatException();
}
if (val.startsWith("+")) {
return Integer.parseInt(val.substring(1));
return _parseInt(val.substring(1));
}
return _parseInt(val);
}
private static int _parseInt(String val) {
if(val.length()==0){
return 0;
}
if (val.startsWith("0")) {
return _parseInt(val.substring(1));
}
return Integer.parseInt(val);
}

14
src/test/java/org/leolo/nrdatad/util/JSONUtilTest.java

@ -8,10 +8,24 @@ public class JSONUtilTest {
@Test public void testJSONUtilParseIntNormal(){
assertEquals(10, JSONUtil.parseInt("10"));
assertEquals(0, JSONUtil.parseInt("0"));
assertEquals(10, JSONUtil.parseInt("+10"));
assertEquals(-10, JSONUtil.parseInt("-10"));
}
@Test public void testZeroPrefix(){
assertEquals(75, JSONUtil.parseInt("075"));
assertEquals(5, JSONUtil.parseInt("005"));
assertEquals(75, JSONUtil.parseInt("+075"));
assertEquals(5, JSONUtil.parseInt("+005"));
assertEquals(-75, JSONUtil.parseInt("-075"));
assertEquals(-5, JSONUtil.parseInt("-005"));
}
@Test public void testAllZero(){
assertEquals(0, JSONUtil.parseInt("00000000"));
}
@Test(expected = NumberFormatException.class) public void testJSONUtilParseIntError1(){
JSONUtil.parseInt("abcd");
}

Loading…
Cancel
Save