문자열에서 정수 값을 swift로 가져옵니다.
제가 할 수 있는 일은
var stringNumb: NSString = "1357"
var someNumb: CInt = stringNumb.intValue
하지만 방법을 찾을 수가 없어요String
다음과 같은 작업을 수행하고 싶습니다.
var stringNumb: String = "1357"
var someNumb: Int = Int(stringNumb)
이것도 작동하지 않습니다.
var someNumbAlt: Int = myString.integerValue
Swift 2.0 생성자를 사용하여 Integer를 초기화할 수 있습니다.
var stringNumber = "1234"
var numberFromString = Int(stringNumber)
사용할 항목:
var stringNumber = "1234"
var numberFromString = stringNumber.toInt()
println(numberFromString)
메모toInt()
:
문자열이 Int에 맞는 정수를 나타내는 경우 해당 정수를 반환합니다.
Swift 3.0에서
유형 1: NSString을 문자열로 변환
let stringNumb:NSString = "1357"
let someNumb = Int(stringNumb as String) // 1357 as integer
유형 2: 문자열에 정수만 있는 경우
let stringNumb = "1357"
let someNumb = Int(stringNumb) // 1357 as integer
유형 3: 문자열에 Float 값이 있는 경우
let stringNumb = "13.57"
if let stringToFloat = Float(stringNumb){
let someNumb = Int(stringToFloat)// 13 as Integer
}else{
//do something if the stringNumb not have digit only. (i.e.,) let stringNumb = "13er4"
}
당신이 원하는 방법은toInt()
당신은 조금 조심해야 합니다, 왜냐하면.toInt()
선택적 Int를 반환합니다.
let stringNumber = "1234"
let numberFromString = stringNumber.toInt()
// numberFromString is of type Int? with value 1234
let notANumber = "Uh oh"
let wontBeANumber = notANumber.toInt()
// wontBeANumber is of type Int? with value nil
사용할 수 있는 경우NSString
오직.
목표-c와 상당히 유사합니다.모든 데이터 유형이 있지만 다음이 필요합니다.as NSString
추가
var x = "400.0" as NSString
x.floatValue //string to float
x.doubleValue // to double
x.boolValue // to bool
x.integerValue // to integer
x.intValue // to int
또한 우리는.toInt()
함수가 추가되었습니다. Apple Inc. 참조."스위프트 프로그래밍 언어" 아이북스.https://itun.es/us/jEUH0.l 49페이지
x.toInt()
위의 답변은 제 문자열 값이 "700.00"이었기 때문에 도움이 되지 않았습니다.
Swift 2.2를 사용하면 이 기능이 작동합니다.
let myString = "700.00"
let myInt = (myString as NSString).integerValue
NSFormatter Class에 제 인텐트를 합격했습니다.
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.maximumFractionDigits = 0
let priceValue = formatter.stringFromNumber(myInt!)!
//Now priceValue is ₹ 700
이 블로그 게시물 덕분에.
다음과 같이 String에서 NSString으로 브리지하고 CInt에서 Int로 변환할 수 있습니다.
var myint: Int = Int(stringNumb.bridgeToObjectiveC().intValue)
저는 그 목적을 위해 연장을 작성했습니다.항상 다음을 반환합니다.Int
문자열이 적합하지 않은 경우Int
0이 반환됩니다.
extension String {
func toTypeSafeInt() -> Int {
if let safeInt = self.toInt() {
return safeInt
} else {
return 0
}
}
}
더 일반적인 솔루션은 확장일 수 있습니다.
extension String {
var toFloat:Float {
return Float(self.bridgeToObjectiveC().floatValue)
}
var toDouble:Double {
....
}
....
}
예를 들어 이것은 신속한 네이티브 String 객체를 Float까지 확장합니다.
8:1 승산(*)
var stringNumb: String = "1357"
var someNumb = Int(stringNumb)
또는
var stringNumb: String = "1357"
var someNumb:Int? = Int(stringNumb)
Int(String)
옵션을 반환합니다.Int?
조금도 아닌Int
.
안전한 사용: 명시적으로 포장을 뜯지 마십시오.
let unwrapped:Int = Int(stringNumb) ?? 0
또는
if let stringNumb:Int = stringNumb { ... }
(*) 작동하지 않는 이유에 대해 실제로 언급한 답변은 없습니다.
간단하지만 더러운 방법
// Swift 1.2
if let intValue = "42".toInt() {
let number1 = NSNumber(integer:intValue)
}
// Swift 2.0
let number2 = Int(stringNumber)
// Using NSNumber
let number3 = NSNumber(float:("42.42" as NSString).floatValue)
연장 도로
이것이 더 낫습니다. 왜냐하면 그것은 지역과 소수점에 잘 어울릴 것이기 때문입니다.
extension String {
var numberValue:NSNumber? {
let formatter = NSNumberFormatter()
formatter.numberStyle = .DecimalStyle
return formatter.numberFromString(self)
}
}
이제 간단하게 다음을 수행할 수 있습니다.
let someFloat = "42.42".numberValue
let someInt = "42".numberValue
Swift 2.0에서 문자열을 Int로 변환:
var str:NSString = Data as! NSString
var cont:Int = str.integerValue
사용하다.integerValue or intValue for Int32
언급URL : https://stackoverflow.com/questions/24019236/get-integer-value-from-string-in-swift
'programing' 카테고리의 다른 글
Eclipse 실행 파일 시작 프로그램 오류:동반자 공유 라이브러리를 찾을 수 없습니다. (0) | 2023.05.12 |
---|---|
열거형에 포함될 수 있는 모든 값을 가져오기 위한 SQL 쿼리 (0) | 2023.05.12 |
PostgreSQL 'NOT IN' 및 하위 쿼리 (0) | 2023.05.12 |
GUID가 GUID인지 확인하는 방법 (0) | 2023.05.12 |
Postgre에서 UTC의 현재 시간을 기본값으로 사용SQL (0) | 2023.05.12 |