2012-01-27 30 views
10

DecimalFormat sử dụng ',' làm ký tự phân cách nhóm mặc định.không có phân tách nhóm char cho DecimalFormat

Cách chính xác để nói với DecimalFormat rằng chúng tôi không muốn bất kỳ ký tự phân cách nhóm nào? Tôi hiện đang sử dụng symbols.setGroupingSeparator ('\ 0'), và nó có vẻ hoạt động, nhưng có vẻ xấu xí.

DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setDecimalSeparator('.'); 
symbols.setGroupingSeparator('\0'); 

DecimalFormat df = new DecimalFormat(); 
df.setDecimalFormatSymbols(symbols); 

ParsePosition pp = new ParsePosition(0); 
Number result = df.parse("44,000.0", pp); // this should fail, as I don't want any grouping separatator char. 
if (pp.getIndex() != input.length()) 
    throw new Exception("invalid number: " + input, 0); 

cách chính xác để nói DecimalFormat rằng chúng tôi không muốn bất kỳ nhóm tách char là gì?

+0

Is It một thực tế xấu để thiết lập tách nhóm để '\ 0'? –

Trả lời

2

Bạn có thể sử dụng phương thức setGroupingUsed(), nhưng điều đó sẽ không làm cho định dạng từ chối số, nó sẽ chỉ dừng phân tích cú pháp tại dấu phân cách đầu tiên. Phân tích cú pháp số với các định dạng sẽ bỏ qua mọi thứ sau ký tự không hợp lệ đầu tiên.

Các vấn đề liên quan