2016-11-27 90 views
1

我想從斯威夫特3.他們的ASCII碼的信件我會做這樣的在Java中:如何從ASCII碼中獲取字符?

for(int i = 65 ; i < 75 ; i++) 
{ 
    System.out.print((char)i); 
} 

這將登錄字母A到J.

現在我在斯威夫特想這:

let s = String(describing: UnicodeScalar(i)) 

而不是隻得到這封信,我得到這個:

Optional("A") 
Optional("B") 
Optional("C") 
... 

我做錯了什麼?謝謝你的幫助。

回答

6

UnicodeScalar有幾個failable初始器用於整數類型,它可以聲明不是有效的Unicode代碼點的值。因此,您需要打開返回的UnicodeScalar?,如果您傳遞了無效的代碼點,則初始化程序將返回nil

然而,鑑於你與ASCII字符專門處理,你可以簡單地註釋iUInt8,走的事實,UnicodeScalarnon-failable initialiser for a UInt8 input(因爲它總是代表一個有效的代碼點)的優勢:

for i : UInt8 in 65..<75 { 
    print(UnicodeScalar(i)) 
} 
+0

明白了。謝謝! – Rob