2011-10-23 46 views
5

Tôi đang phân tích cú pháp tệp có giá trị số nguyên bằng dấu phẩy để phân tách hàng nghìn.groovy chuyển đổi Chuỗi "1,503" thành Số nguyên

String s = "1,503" 
Integer i = new Integer(s) 

không hoạt động, ném ngoại lệ phân tích cú pháp. Có cách nào dễ dàng để phân tích cú pháp này không?

Cảm ơn

Trả lời

6

Thay vào đó hãy sử dụng NumberFormat. Ví dụ, trong Java:

import java.util.*; 
import java.text.*; 

public class Test { 
    public static void main(String args[]) throws ParseException { 
     NumberFormat format = NumberFormat.getIntegerInstance(Locale.US); 
     Long parsed = (Long) format.parse("1,234"); 
     System.out.println(parsed); 
    } 
} 

(Bạn có thể sau đó lấy giá trị số nguyên từ Long, tất nhiên.)

tôi đã chỉ định một cách rõ ràng để đảm bảo Locale.US dấu phẩy được sử dụng như dấu định giới ngàn; bạn có thể muốn sử dụng một miền địa phương khác nếu đầu vào có thể thay đổi.

+0

tạo ảnh vui nhộn Jon, cảm ơn. – Ray

7

Phương pháp hơi hấp dẫn hơn một chút;

int a = java.text.NumberFormat.instance.parse('1,234') 

Nhưng điều này sẽ sử dụng ngôn ngữ mặc định

+0

Đó là Groovy, cảm ơn Tim – Ray

+0

funky ..........! –

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