-2

どういうわけかstringByReplacingCharactersInRangeを間違って使用していますが、その方法がわかりません。私の目標は、のあるキャラクターを別のキャラクターに置き換えることNSStringです。私はこれを何度も行いますが、2回の交換の後、NSStringの最後から切り始めます。これは、必要ありません。これが私のコードです。

    NSRange firstCharRange = NSMakeRange(mi, mi); // mi is an int, indicating the index of the replaced char

    myword = [myword stringByReplacingCharactersInRange:firstCharRange withString:bb.titleLabel.text]; // myword is the string

最初mywordは@"RRRRRRRR"で、最初の文字列を置き換えた後、次のようになります。

eRRRRRRR

それから

egRRRRRR

それから

eghRRRR // why did cut off the last character?
4

2 に答える 2

5

の2番目のパラメータNSMakeRange()は長さであり、終了インデックスではありません。あなたはたぶんただ渡したいでしょう1

于 2012-08-09T03:32:48.210 に答える
0

NSString * str = @ "Hardeep_Singh";

NSLog(@"Before = %@",str);

str = [str stringByReplacingOccurrencesOfString:@"_" withString:@" "];

NSLog(@"After = %@",str);

これを使用できます。これで、1つの文字をNSStringの別の文字に置き換えることができます。それはあなたのために役立つかもしれません。

NSString *myword=[NSString stringWithString:@"0123456789"];

NSLog(@"Before = %@ ",myword);

NSRange firstCharRange = NSMakeRange(1,2); 

//最初の引数は始点で、2番目は終点で、0からスターになります。

myword = [myword stringByReplacingCharactersInRange:firstCharRange withString:@"H"];

NSLog(@"After = %@ ",myword);

それはあなたの答えがあなたの理解であるかもしれないということです。

于 2012-08-09T04:15:42.023 に答える