Làm thế nào để kiểm tra xem một biến là một số hay một chuỗi trong Ruby?Cách kiểm tra xem biến có phải là số hay chuỗi không?
Trả lời
Có một số cách:
>> 1.class #=> Fixnum
>> "foo".class #=> String
>> 1.is_a? NumeriC#=> true
>> "foo".is_a? String #=> true
var.is_a? String
var.is_a? Numeric
Điều này không kiểm tra xem biến * có phải là một số hay không, nó sẽ kiểm tra xem đối tượng biến * trỏ tới * có phải là một số hay không. Có một sự khác biệt rất lớn giữa hai người. –
@ Jörg: Tôi nghĩ rằng điều đó là khá rõ ràng những gì OP đang yêu cầu, không cần phải cho người đi bộ trong trường hợp này. –
In lớp của nó, nó sẽ cho bạn thấy những loại biến là (ví dụ String hoặc Number).
ví dụ .:
puts varName.class
Điều này không kiểm tra xem * biến * là một số, nó sẽ kiểm tra xem đối tượng biến * trỏ tới * có phải là một số hay không. Có một sự khác biệt rất lớn giữa hai người. –
class Object
def is_number?
self.to_f.to_s == self.to_s || self.to_i.to_s == self.to_s
end
end
> 15.is_number?
=> true
> 15.0.is_number?
=> true
> '15'.is_number?
=> true
> '15.0'.is_number?
=> true
> 'String'.is_number?
=> false
Điều này làm việc cho tôi ở đâu '.is_a? Số' không. Tôi đã kiểm tra xem một trường được trích xuất từ tệp CSV có phải là một con số hay không, do đó so sánh với 'Numeric' không thành công vì nó thực sự là một chuỗi cũng xảy ra là một số. –
Điều này không thành công trong một vài trường hợp, như '15.10',' 015' hoặc '15.33333333333333333'. –
Định nghĩa sau cho số isố? satsifies Andrew's mối quan tâm: def is_number? (văn bản) !! (/^[- +]? [0-9] * \.? [0-9] + ([eE] [- +]? [0-9 ] +)? $/= ~ văn bản) kết thúc –
Các finishing_moves
gem bao gồm một phương pháp String#numeric?
để hoàn thành nhiệm vụ này rất. Cách tiếp cận này giống như câu trả lời của installero, chỉ đóng gói.
"1.2".numeric?
#=> true
"1.2e34".numeric?
#=> true
"1.2.3".numeric?
#=> false
"a".numeric?
#=> false
if chr.to_i != 0
puts "It is number, yep"
end
Nếu 'chr' là' "0" 'thì sao? –
Vui lòng thêm giải thích cho câu trả lời của bạn. –
- 1. Kiểm tra xem chuỗi có phải là số tăng gấp đôi hay không
- 2. Kiểm tra xem một chuỗi có phải là số
- 3. Kiểm tra xem biến có phải là ngày có Twig
- 4. Kiểm tra xem loại biến có phải là nguyên thủy
- 5. Có phải kiểm tra xem biến js có phải là lựa chọn d3 không?
- 6. Cách tốt hơn để kiểm tra xem chuỗi có phải là số nguyên trên iPhone không?
- 7. Chức năng kiểm tra xem chuỗi có phải là ngày
- 8. Kiểm tra xem đây có phải là
- 9. Có chức năng nào để kiểm tra xem biến chuỗi là giá trị số không?
- 10. Cách tốt nhất để kiểm tra xem Biến có phải là không?
- 11. java - Cách kiểm tra xem chuỗi có phải là tên phần tử XML hợp lệ không?
- 12. Kiểm tra xem trang có phải là trang gốc hay trang đó là trang con không?
- 13. Kiểm tra xem chuỗi có chứa số
- 14. Có cách nào để kiểm tra xem biến có phải là Ngày trong JavaScript không?
- 15. cách nhanh chóng để kiểm tra xem một chuỗi ký tự không phải là số
- 16. Cách dễ nhất để kiểm tra xem Chuỗi tùy ý có phải là tên tệp hợp lệ hay không
- 17. Cách kiểm tra xem java.lang.reflect.Type có phải là Enum
- 18. Java - Cách kiểm tra xem một bộ phận có phải là một số nguyên hay một phao không?
- 19. Kiểm tra xem biến có phải là một chuỗi trong Ruby
- 20. Python - kiểm tra xem đối tượng có phải là hàm dựng sẵn hay không
- 21. Cách kiểm tra xem tệp có phải là hình ảnh
- 22. Kiểm tra xem đối tượng có phải là phần tử DOM hay không
- 23. Làm cách nào để xác thực xem chuỗi có phải là biến java hợp lệ không?
- 24. Có cách nào để kiểm tra xem một biến có phải là một số nguyên không? C++
- 25. Cách kiểm tra xem ký tự trong chuỗi có phải là một chữ cái không? Python
- 26. Cách kiểm tra xem chuỗi có phải là một trong các giá trị đã biết không?
- 27. Cách kiểm tra xem chuỗi có phải là URL HTTP hợp lệ không?
- 28. Python: Cách kiểm tra xem một chuỗi có phải là một IRI hợp lệ không?
- 29. Kiểm tra xem chuỗi có phải là một cách viết tắt có thể cho tên
- 30. Kiểm tra xem tệp có phải là thư mục hay chỉ là một tệp
này không kiểm tra xem * biến * là một con số, nó sẽ kiểm tra xem đối tượng biến * điểm * là một số. Có một sự khác biệt rất lớn giữa hai người. –
Khi đặt câu hỏi về SO (và các nơi khác) được yêu cầu một cách thông tục, thật công bằng khi cho rằng đó là ý nghĩa của OP, đặc biệt là kể từ khi người đó chấp nhận nó. –