use*_*742 3 java string numbers string-parsing
我正在解析给定String-s中的Long值.
Long.valueOf()并且Long.parseLong()不起作用 - 因为这样的String str的格式为1,234,567,并且可以用空格包围.
我可以通过处理String来使它成为裸数字 - 然后解析出值.所以 - 它会是这样的
str.trim();
String tempArray [] = str.split(",");
str = "";
for (String s:tempArray)
str+=s;
Run Code Online (Sandbox Code Playgroud)
但是,必须有更好的方法来做到这一点.它是什么?
你可以NumberFormat在这里使用,适当的Locale.美国的语言环境就足够了.你应该照顾空白.
String str = "1,234,567";
NumberFormat format = NumberFormat.getInstance(Locale.US);
System.out.println(format.parse(str.replace(" ", "")));
Run Code Online (Sandbox Code Playgroud)
你甚至可以使用DecimalFormat更强大的功能.您可以添加任何分组或小数分隔符:
DecimalFormat decimalFormat = new DecimalFormat();
DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols();
decimalFormatSymbols.setGroupingSeparator(',');
decimalFormat.setDecimalFormatSymbols(decimalFormatSymbols);
System.out.println(decimalFormat.parse(str.replace(" ", "")));
Run Code Online (Sandbox Code Playgroud)