2012-01-08 19 views

Trả lời

8

Vâng, bạn có thể sử dụng các nhà điều hành có điều kiện thay vì:

return StringUtils.isNotBlank(myString) ? Integer.parseInt(myString) : 0; 

Nếu bạn cần phải làm điều này ở nhiều nơi, bạn có thể muốn đưa điều này vào một phương pháp riêng biệt. Lưu ý rằng bạn cũng nên xem xét các tình huống trong đó myString là null hoặc chứa văn bản không phải là số.

0

Có. (Xác thực các yếu tố đầu vào của bạn trước khi đưa ra các giả định về những gì có trong đó. :-)

+1 vì đã tìm thấy ngôn ngữ chung của Apache w/StringUtils.

0

Integer.parseInt(String) không chấp nhận đầu vào không phải là số, bao gồm cả giá trị rỗng và chuỗi trống.

Hãy bảo vệ chống lại điều đó giống như bạn đã đề xuất hoặc bắt NFE.

22

Có, nhưng: Wrap nó trong một phương pháp mỏng (và loại bỏ sự dư thừa else), hoặc sử dụng một thực hiện hiện có, như Commons Lang's NumberUtils.toInt(str, defaultValue):

NumberUtils.toInt(myString, 0); 

Phương pháp này xử lý null giá trị và thất bại chuyển đổi.

1

Những gì bạn có là tốt, nhưng như một phong cách mã hóa Tôi thích làm các xét nghiệm "tích cực" (isBlank), chứ không phải là "tiêu cực" (isNotBlank), tức là

if (StringUtils.isBlank(myString)) { 
    return 0; 
} 
return Integer.parseInt(myString); // Note: No need for else when the if returns 

hay, ngắn gọn hơn:

return StringUtils.isBlank(myString) ? 0 : Integer.parseInt(myString); 
0

tôi không biết tại sao tôi đang tìm kiếm này nhưng đây là một cách dễ dàng:

int test=str.isEmpty()?0:Integer.parseInt(str); 
2

Nếu chuỗi thể để trống tôi làm điều đó theo cách này:

Integer.parseInt("0" + inputString) 

Khi tôi không chắc chắn nó chỉ chứa chữ số:

Integer.parseInt(0 + inputString.replaceAll("\\D+","")) 
+0

Tôi có thể là một người mới nhưng tại sao điều này không bỏ phiếu tán ở tất cả , một mẹo đơn giản gọn gàng. Cập nhật, chỉ cần nhận ra lý do tại sao, nó không cho giá trị tiêu cực! –

+0

Cách khéo léo này chỉ hoạt động với số nguyên không dấu (số dương) – NPE

+0

Đúng. Đối với trường hợp chung tôi sẽ sử dụng một số thư viện * Utils của bên thứ ba (xem các câu trả lời khác) –

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