apache commons lang - Convert any number string(int, float, double, long, etc) to appropriate numeric (int, float, double, long, etc) value in java -
apache commons lang - Convert any number string(int, float, double, long, etc) to appropriate numeric (int, float, double, long, etc) value in java -
is there improve practice convert input number string (int, double, etc) it's respective wrapper object/primitive type in java?
using valueof()
or parsexxx()
methods can achieved. should knowing underlying string format before selecting appropriate type.
what doing parsing number string long, using numberutils
commons-lang.jar follows:
long longvalue= (long) numberutils.tolong(numberstring);
but problem if numberstring
has double
value, fails parse number , homecoming 0.0
parsed value. next statement works fine double values :
long longvalue = (long) numberutils.todouble(numberstring);
is there generic way of doing this? don't care digits after decimal.
thanks reading.
update
this looks elegant solution me, suggested @thomas :
numberformat numberformat = numberformat.getnumberinstance(); long longvalue = numberformat.parse(targetfieldvalue).longvalue();
as parse()
method returns long
or double
wrapper object, can checked , assigned accordingly generic use. grab here parse()
throw parseexception
, need handled according requirement.
i've used solve problem, curious know other solutions!!
import static org.apache.commons.lang3.math.numberutils.isdigits; import static org.apache.commons.lang3.math.numberutils.todouble; import static org.apache.commons.lang3.math.numberutils.tolong; public static void main(string[] args) { string numberstring = "-23.56"; long longnumber = (isdigits(numberstring) ? tolong(numberstring) : (long) todouble(numberstring)); system.out.println(longnumber); }
the cast here assumes happy truncating decimal, regardless of sign
(the presence of -
in string mean isdigits
returns false
). if not, appropriate rounding.
if fear string might contain alphabets, utilize createlong
variant throw numberformatexception
instead of defaulting 0
.
java apache-commons-lang
Comments
Post a Comment