私には のNSString
ようなものが@"12345"
あり、もう 1 つのようなものがあり@"##-##-#"
ます。#
すべての文字をNSString
1 つずつ置き換える最善の方法は何12-34-5
ですか?
質問する
216 次
4 に答える
0
これは、単一のループで、 Heavy を使用しない私の試みですcharacterAtIndex
:
NSString *pattern = @"##-##-#";
NSString *replace = @"12345";
NSMutableString *result = [pattern mutableCopy];
NSRange searchRange = NSMakeRange(0, [pattern length]);
NSRange resultRange;
NSString *patternCheck = [pattern stringByReplacingOccurrencesOfString:@"-" withString:@""];
if ([replace length] == [patternCheck length]) {
for (int i = 0; i < [replace length]; i++) {
resultRange = [result rangeOfString:@"#" options:NSCaseInsensitiveSearch range:searchRange];
[result replaceCharactersInRange:resultRange withString:[replace substringWithRange:NSMakeRange(i, 1)]];
}
}
NSLog(@"pattern:%@ replace:%@ result:%@", pattern, replace, result);
印刷しますpattern:##-##-# replace:12345 result:12-34-5
于 2013-10-10T08:52:07.333 に答える
0
申し訳ありませんが、私はあなたの質問を読み違えました:
これが私がテストした実用的なソリューションです。
NSString *string = @"123456";
NSString *string2 = @"##-##-##";
int i = 0;
do {
NSRange rangeOfChar = [string2 rangeOfString:@"-"];
NSLog(@"range %ld %ld",rangeOfChar.location,rangeOfChar.length);
string = [NSString stringWithFormat:@"%@%@%@",[string substringToIndex:rangeOfChar.location+i],@"-",[string substringFromIndex:rangeOfChar.location+i]];
string2 = [string2 stringByReplacingCharactersInRange:rangeOfChar withString:@""];
i++;
} while ([string2 rangeOfString:@"-"].location!=NSNotFound);
于 2013-10-09T18:03:19.003 に答える