I'm parsing out Long values from given String-s.
Long.valueOf() and Long.parseLong() wouldn't work - because such a String str is in the format 1,234,567 and can be surrounded by spaces.
I can work this by processing the String to get it to bare digits-- then parsing the value out. so - it would be something like
str.trim();
String tempArray [] = str.split(",");
str = "";
for (String s:tempArray)
str+=s;
however, there must be a better way of doing this. What is it?
You can use NumberFormat here, with appropriate Locale. US locale would suffice here. You have to take care of whitespaces though.
String str = "1,234,567";
NumberFormat format = NumberFormat.getInstance(Locale.US);
System.out.println(format.parse(str.replace(" ", "")));
You can even use DecimalFormat which is slightly more powerful. You can add any grouping or decimal separator:
DecimalFormat decimalFormat = new DecimalFormat();
DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols();
decimalFormatSymbols.setGroupingSeparator(',');
decimalFormat.setDecimalFormatSymbols(decimalFormatSymbols);
System.out.println(decimalFormat.parse(str.replace(" ", "")));