私はこの状況を解決しなければならず、私は成功していない解決策を探していました。私は、文字列内の文字ごとにunicode
スカラーを取得することでこれを試みましたが、私はこの作業を行うことができません。文字列中の各文字をアルファベット順に置き換えるには?
誰かがこの変換を実装するのに手伝ってもらえますか? 私はSwift 3
で開発しています。
私はこの状況を解決しなければならず、私は成功していない解決策を探していました。私は、文字列内の文字ごとにunicode
スカラーを取得することでこれを試みましたが、私はこの作業を行うことができません。文字列中の各文字をアルファベット順に置き換えるには?
誰かがこの変換を実装するのに手伝ってもらえますか? 私はSwift 3
で開発しています。
文字列を使用して、その値を得ることができますunicodeScalarsというプロパティがあります。試してみてくださいただ、UnicodeScalar初期化子とflatMapを使用して文字列から各値をインクリメントし、最終的な文字列にそれらを結合するために減らす使用:
extension String {
var shiftedCharacters: String {
return unicodeScalars.lazy
.flatMap{UnicodeScalar($0.value+1)}
.reduce("", {$0 + String($1)})
}
}
別のオプションは、unicodeScalarsで文字列UnicodeScalarViewを作成し、そこから新しい文字列を初期化することです。
extension String {
var shiftedCharacters: String {
return String(String.UnicodeScalarView(
unicodeScalars.lazy
.flatMap{ UnicodeScalar($0.value+1) }
))
}
}
テスト:
"abcde".shiftedCharacters // "bcdef"
"car".shiftedCharacters // "dbs"
この
let str = "Hello"
let newStr
for index in 0...str.length-2 {
let i = str.index(str.startIndex, offsetBy: index)
newStr = str.bridgeToObjectiveC().stringByReplacingCharactersInRange(NSMakeRange(index,1), withString:str[i+1])
}
newStr = str.bridgeToObjectiveC().stringByReplacingCharactersInRange(NSMakeRange(str.length-1,1), withString:" ")
私は品質とパフォーマンスに関して書いていない – SM18
更新あなたの質問ウィットあなたが試したこと。 – rmaddy