2015-12-14 18 views
22

Tôi đã vật lộn và thất bại trong hơn mười phút ở đây và tôi cho vào. Tôi cần phải chuyển đổi một Int thành một ký tự trong Swift và không thể giải quyết nó.Làm thế nào để chuyển đổi một Int thành một nhân vật trong Swift

Câu hỏi

thế nào để bạn chuyển đổi (đúc) một Int (nguyên) vào một Character (char) trong Swift?

Vấn đề minh họa/Task Challenge

Tạo một vòng lặp for để in các chữ cái 'A' qua 'Z', ví dụ một cái gì đó như thế này:

for(var i:Int=0;i<26;i++) {  //Important to note - I know 
     print(Character('A' + i)); //this is horrendous syntax... 
    }        //just trying to illustrate! :) 

Trả lời

19

Bạn không thể chuyển đổi một số nguyên trực tiếp đến một trường hợp Character, nhưng bạn có thể đi từ số nguyên để UnicodeScalar-Character và ngược lại:

let startingValue = Int(("A" as UnicodeScalar).value) // 65 
for i in 0 ..< 26 { 
    print(Character(UnicodeScalar(i + startingValue))) 
} 
4

thử này

for i in 0...25 
{ 
    let string = String(format: "%c", i+65) as String 
    NSLog("%@", string) 
} 
6

Cho đến nay tôi đã đi lên với điều này:

for i in 0 ..< 26 { 
    print(Character(UnicodeScalar(Int(UnicodeScalar("A").value) + i))) 
} 

Nếu bạn chỉ cố gắng để tạo ra "A" đến " Z ", bạn có thể tránh toán và chỉ cần làm:

for c in UnicodeScalar("A").value...UnicodeScalar("Z").value { 
    print(String(UnicodeScalar(c))) 
} 
1

Đối với bối cảnh hữu ích, lấy vacawama và UnicodeScalar Nate Cook sử dụng -

let startingValue = Int(UnicodeScalar("A").value) 
for i in 0..<26 { 
    let itemStr = String(UnicodeScalar(i + startingValue)) 

    items.append("Item " + itemStr) 
} 
+0

Ok tốt ... Bạn đúng và tôi ghét điều đó. Làm xong!Đây là kiểu C nếu có ai muốn nó - –

+0

cho (var i: Int = 0; i <26; i ++) { var itemStr: String = String (UnicodeScalar (i + startingValue)); items.append (Chuỗi (định dạng: "Mục '% @'", itemStr)); } –

+0

đánh bắt tốt. Tôi đã thay thế "items.append" ban đầu (String (format: "Item"% @ '", itemStr))" với đề xuất của bạn là "items.append (" Item "+ itemStr) –

4

Cách chuyển đổi một ký tự thành một ký tự trong Swift

Vì lợi ích của khách truy cập trong tương lai, tôi cung cấp câu trả lời cơ bản cho tiêu đề câu hỏi thay vì chi tiết của câu hỏi.

Đây là quy trình gồm hai bước. Chuyển đổi Int thành UnicodeScalar và sau đó chuyển đổi UnicodeScalar thành Character.

let myInteger: Int = 97 

// convert Int to a valid UnicodeScalar 
guard let myUnicodeScalar = UnicodeScalar(myInteger) else { 
    return 
} 

// convert UnicodeScalar to Character 
let myCharacter = Character(myUnicodeScalar) 

// results 
print(myCharacter) // a 

(source)

Hoặc cách khác ...

if let myUnicodeScalar = UnicodeScalar(97) 
    let myCharacter = Character(myUnicodeScalar) 
} 

Xem thêm

Các vấn đề liên quan