2017-05-15 3 views
0

이 오류를 어떻게 처리 할 수 ​​있습니까? 문자열의 모든 문자의 ASCII 문자 수를 얻으려고 시도하지만 필요한 경우 기호를 검사하기 위해 문자를 문자열로 다시 변환 할 수 없습니까?문자를 문자열로 변환 할 수 없습니다.

여기서 출력

var n = "KNjNKJbbsibdcjkdcn___*(&0786" 
let r = n.characters.count 

for i in stride(from: 0, to: r, by: 1) { 
    let t = n.characters.index(n.startIndex, offsetBy: i) 

    String?(n[t]) 
} 

문자열 형태로 문자를 구분해야 내 코드이다. ?

+1

유일한 문제는 표현의 부유 물음표이다 t])'(결과로 아무 것도하지 않음). 그러나 어쨌든, 당신은'n.characters {...} '에서'for character'를 할 수 있습니다 - [String Swift 2.0 반복] (http://stackoverflow.com/q/30767594/2976878)을 비교하십시오. 그렇지 않으면 현재 구현은 2 차 (선형이 아닌) 시간으로 실행됩니다. – Hamish

+1

그냥 문자'n.characters {let str = String (character)}'문자' – Hamish

+0

그냥 놀이터에서'? '를 없애 버렸습니다. – Pierce

답변

0

코드의이 비트 (NO ASCII 코드를 가진 사람은 제외) ASCII 문자의 문자열을 배열로 변환합니다 : '문자열 (N

let str = "KNjNKJbbsibdcjkdcn___*(&0786" 
let charCodes = str.unicodeScalars 
    .filter({ $0.isASCII }) 
    .map({ $0.value }) 
print(charCodes)