【Swift4】文字列(NSString)から任意の文字を別の文字に置換する方法【Obbjective-C】

2020年8月27日

文字列から任意の文字を別の文字に置き換える方法をご紹介します。
置換の方法は、置換前文字と置換後文字を指定する方法とNSRangeを使用し、range部分を指定した文字に置換する2種類の方法があります。

文字列の中の任意の文字を置き換える方法

Swift4

var string : String = "abcdefg"
string = string.replacingOccurrences(of: "defg", with: "abc")
// string = abcabc となる

Objective-C

NSString *string = @"abcdefg";
string = [string stringByReplacingOccurrencesOfString:@"defg" withString:@"abc"];
// string = abcabc となる

NSRangeによる置換方法

Swift4

var string : String = "abcdefg"
let range = string.range(of: "defg")
string = string.replacingCharacters(in: range!, with: "abc")
// string = abcabc となる

Objective-C

NSString *string = @"abcdefg";
NSRange range = [string rangeOfString:@"defg"];
string = [string stringByReplacingCharactersInRange:range withString:@"abc"];
// string = abcabc となる

NSRangeは開始位置とそこからの文字数を記録しています。
「abcdefg」という文字列から、「defg」というRangeを取ると
開始位置4 文字数4という風になっています。