Tôi đang tìm một phương thức trả về boolean nếu chuỗi nó được chuyển là một số hợp lệ (ví dụ: "123.55e-9", "-333,556 "). Tôi không muốn chỉ làm:Thư viện Java để kiểm tra xem Chuỗi có chứa số * không * ngoại lệ
public boolean isANumber(String s) {
try {
BigDecimal a = new BigDecimal(s);
return true;
} catch (NumberFormatException e) {
return false;
}
}
Rõ ràng, chức năng nên sử dụng một máy nhà nước (DFA) để phân tích chuỗi để đảm bảo ví dụ không hợp lệ sẽ không đánh lừa nó (ví dụ: "-21, 22.22.2 "," 33-2 "). Bạn có biết có thư viện nào tồn tại không? Tôi không thực sự muốn tự viết nó vì nó là một vấn đề rõ ràng như vậy mà tôi chắc chắn tôi sẽ tái phát minh ra bánh xe.
Cảm ơn,
Nick
Tại sao chính xác không bạn muốn thế nào để sử dụng phân tích cú pháp từ BigDecimal? Đó là cách dễ nhất, thực sự. – Jorn
Tôi muốn biết lý do tại sao bạn không muốn sử dụng đoạn trích bạn đã cung cấp? Nếu bạn cần phải _use_ số bạn phải phân tích nó? Nó chỉ là để xác nhận rằng một chuỗi có thể đi đến backend như-là? –
Vì Ngoại lệ không phải là vấn đề cho trường hợp này. Ngoại trừ, ngoại trừ trường hợp không kiểm soát chương trình. – Malax