/** * Parses a number from the specified reader stream. * * @param r The reader to parse the string from. * @param type * The number type to created. * Can be any of the following: * <ul> * <li> Integer * <li> Double * <li> Float * <li> Long * <li> Short * <li> Byte * <li> BigInteger * <li> BigDecimal * </ul> * If <jk>null</jk>, uses the best guess. * @throws IOException If a problem occurred trying to read from the reader. * @return The parsed number. * @throws Exception */ public static Number parseNumber(ParserReader r, Class<? extends Number> type) throws Exception { return parseNumber(parseNumberString(r), type); }
/** * Converts an object to a Number. * * @param o The object to convert. * @return The converted object. */ public static Number toNumber(Object o) { if (o == null) return null; if (o instanceof Number) return (Number)o; try { return StringUtils.parseNumber(o.toString(), null); } catch (ParseException e) { throw new RuntimeException(e); } }
/** * Converts an object to a Number. * * @param o The object to convert. * @return The converted object. */ public static Number toNumber(Object o) { if (o == null) return null; if (o instanceof Number) return (Number)o; try { return StringUtils.parseNumber(o.toString(), null); } catch (ParseException e) { throw new RuntimeException(e); } }
/** * Parses a number from the specified reader stream. * * @param r The reader to parse the string from. * @param type * The number type to created. * Can be any of the following: * <ul> * <li> Integer * <li> Double * <li> Float * <li> Long * <li> Short * <li> Byte * <li> BigInteger * <li> BigDecimal * </ul> * If <jk>null</jk>, uses the best guess. * @throws IOException If a problem occurred trying to read from the reader. * @return The parsed number. * @throws Exception */ public static Number parseNumber(ParserReader r, Class<? extends Number> type) throws Exception { return parseNumber(parseNumberString(r), type); }
/** * Converts an object to a Number. * * @param o The object to convert. * @return The converted object. */ public static Number toNumber(Object o) { if (o == null) return null; if (o instanceof Number) return (Number)o; try { return StringUtils.parseNumber(o.toString(), null); } catch (ParseException e) { throw new RuntimeException(e); } }
/** * Parses a number from the specified reader stream. * * @param r The reader to parse the string from. * @param type * The number type to created. * Can be any of the following: * <ul> * <li> Integer * <li> Double * <li> Float * <li> Long * <li> Short * <li> Byte * <li> BigInteger * <li> BigDecimal * </ul> * If <jk>null</jk>, uses the best guess. * @throws IOException If a problem occurred trying to read from the reader. * @return The parsed number. * @throws Exception */ public static Number parseNumber(ParserReader r, Class<? extends Number> type) throws Exception { return parseNumber(parseNumberString(r), type); }
private Number parseNumber(UonReader r, Class<? extends Number> c) throws Exception { String s = parseString(r, false); if (s == null) return null; return StringUtils.parseNumber(s, c); }
private Number parseNumber(UonReader r, Class<? extends Number> c) throws Exception { String s = parseString(r, false); if (s == null) return null; return StringUtils.parseNumber(s, c); }
final static Number toNumber(String s) { try { if (isNotEmpty(s)) return parseNumber(s, Number.class); return null; } catch (ParseException e) { throw new RuntimeException(e); } }
private Number parseNumber(UonReader r, Class<? extends Number> c) throws Exception { String s = parseString(r, false); if (s == null) return null; return StringUtils.parseNumber(s, c); }
final static Number toNumber(String s) { try { if (isNotEmpty(s)) return parseNumber(s, Number.class); return null; } catch (ParseException e) { throw new RuntimeException(e); } }
final static Number toNumber(String s) { try { if (isNotEmpty(s)) return parseNumber(s, Number.class); return null; } catch (ParseException e) { throw new RuntimeException(e); } }
return StringUtils.parseNumber(s, type);
return StringUtils.parseNumber(s, type);
return StringUtils.parseNumber(s, type);
@SuppressWarnings({ "rawtypes", "unchecked" }) @Test public void testParseNumberFromReader() throws Exception { ParserReader in; Number n; for (Class c : new Class[]{ Integer.class, Double.class, Float.class, Long.class, Short.class, Byte.class, BigInteger.class, BigDecimal.class, Number.class, AtomicInteger.class, AtomicLong.class}) { in = new ParserReader(new ParserPipe("123'")); n = parseNumber(in, c); assertTrue(c.isInstance(n)); assertEquals(123, n.intValue()); } }
else if (sType.isNumber()) if (type.canCreateNewInstanceFromNumber(outer)) o = type.newInstanceFromNumber(this, outer, parseNumber(s, type.getNewInstanceFromNumberClass())); else o = parseNumber(s, (Class<? extends Number>)sType.getInnerClass()); else if (sType.isBoolean()) o = Boolean.parseBoolean(s);
else if (sType.isNumber()) if (type.canCreateNewInstanceFromNumber(outer)) o = type.newInstanceFromNumber(this, outer, parseNumber(s, type.getNewInstanceFromNumberClass())); else o = parseNumber(s, (Class<? extends Number>)sType.getInnerClass()); else if (sType.isBoolean()) o = Boolean.parseBoolean(s);
else if (sType.isNumber()) if (type.canCreateNewInstanceFromNumber(outer)) o = type.newInstanceFromNumber(this, outer, parseNumber(s, type.getNewInstanceFromNumberClass())); else o = parseNumber(s, (Class<? extends Number>)sType.getInnerClass()); else if (sType.isBoolean()) o = Boolean.parseBoolean(s);
assertEquals(123, parseNumber("123", null)); assertEquals(123, parseNumber("123", Integer.class)); assertEquals((short)123, parseNumber("123", Short.class)); assertEquals((long)123, parseNumber("123", Long.class)); assertEquals(0123, parseNumber("0123", null)); assertEquals(-0123, parseNumber("-0123", null)); assertEquals(0x123, parseNumber("0x123", null)); assertEquals(-0x123, parseNumber("-0x123", null)); assertEquals(0X123, parseNumber("0X123", null)); assertEquals(-0X123, parseNumber("-0X123", null)); assertEquals(0x123, parseNumber("#123", null)); assertEquals(-0x123, parseNumber("-#123", null)); assertEquals(0.123f, parseNumber("0.123", null)); assertEquals(-0.123f, parseNumber("-0.123", null)); assertEquals(.123f, parseNumber(".123", null)); assertEquals(-.123f, parseNumber("-.123", null));