Điều này không có chi phí regex
double myNum = 0;
String testVar = "Not A Number";
if (Double.TryParse(testVar, out myNum)) {
// it is a number
} else {
// it is not a number
}
Ngẫu nhiên, tất cả các kiểu dữ liệu chuẩn, với ngoại lệ rõ ràng là GUID, đều hỗ trợ TryParse.
cập nhật
secretwep đưa ra rằng giá trị "2345" sẽ vượt qua bài kiểm tra ở trên dưới dạng một số. Tuy nhiên, nếu bạn cần đảm bảo rằng tất cả các ký tự trong chuỗi đều là chữ số, thì nên thực hiện một cách tiếp cận khác.
ví dụ 1 :
public Boolean IsNumber(String s) {
Boolean value = true;
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
return value;
}
hoặc nếu bạn muốn lạ mắt hơn một chút
public Boolean IsNumber(String value) {
return value.All(Char.IsDigit);
}
cập nhật 2 (từ @stackonfire để đối phó với các chuỗi rỗng hoặc rỗng)
public Boolean IsNumber(String s) {
Boolean value = true;
if (s == String.Empty || s == null) {
value=false;
} else {
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
} return value;
}