正如@MartinR說,檢查字符串可以轉換爲Int
或Double
:
extension String {
var isnumberordouble: Bool { return Int(self) != nil || Double(self) != nil }
}
print("1".isnumberordouble) // true
print("1.2.3".isnumberordouble) // false
print("1.2".isnumberordouble) // true
@MartinR提出的意見好點。該轉換爲Int
的任何值也將轉換爲Double
,所以只檢查轉化爲Double
足夠:
extension String {
var isnumberordouble: Bool { return Double(self) != nil }
}
處理前後空白
上述工程的解決方案,但是如果您的String
具有前導空白或尾隨空白,則不是很寬容。處理使用的String
的trimmingCharacters(in:)
方法來刪除空格(需要基金會):
import Foundation
extension String {
var isnumberordouble: Bool { return Double(self.trimmingCharacters(in: .whitespaces)) != nil }
}
print(" 12 ".isnumberordouble) // true
只是檢查,如果字符串可以轉換* *爲int或雙。請參閱https://stackoverflow.com/a/30315832/1187415。 –
'2.'怎麼樣? –
@NiravD是什麼? ,我想只檢查字符串,如果int或double必須返回true,否則必須爲false – SwiftDeveloper