2017-01-13 9 views
-1

文章内の文字をランダムに大文字にする方法が必要です。出来ますか?Swiftの文章でランダムに文字を大文字にする方法はありますか?

+0

このSOのリンクは参照してください。http://stackoverflow.com/questions/39380116/uppercase-random-characters-in-a-nsstring? – KAR

+0

ありがとうありがとう、私は客観的な - Cコード(私は初心者です)を読むことができません – Nour

+0

私は迅速にコードを追加しています。 – KAR

答えて

0

var string: String = "your string" 
var chars: [Any] = [] 
var letterIndexes: [Any] = [] 
for i in 0..<string.characters.count { 
    var ch: unichar = string[i] 
    // add each char as a string to a chars collection 
    chars.append("\(ch)") 
    // record the index of letters 
    if CharacterSet.letters.characterIsMember(ch) { 
     letterIndexes.append((i)) 
    } 
} 

、これを試しては大文字される文字を決定するためにletterIndexesからランダム選択します。そのインデックスのchars配列のメンバーを大文字に変換します。

var charsToUppercase: Int = 12 
var i = 0 
while i < charsToUppercase && letterIndexes.count { 
    var randomLetterIndex: Int? = arc4random_uniform(((letterIndexes.count) as? u_int32_t)) 
    var indexToUpdate = CInt(letterIndexes[randomLetterIndex]) 
    letterIndexes.remove(at: randomLetterIndex) 
    chars[indexToUpdate] = chars[indexToUpdate].uppercased() 
    i += 1 
} 

残っているのは、chars配列を文字列に結合することです。

var result: String = (chars as NSArray).componentsJoined(byString: "") 
print("\(result)") 

this link for more informationを参照してください。

関連する問題