1

文字列にいくつかの改行があります。ただし、文字列の先頭または末尾にある場合にのみトリミングする必要があります。間にあれば大丈夫です。どうやってするか?

4

5 に答える 5

3

以下を使用する必要があります。

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange;

ターゲットは_@"\n"

交換品は@""

範囲は次のとおりです。

NSMakeRange(0,2); // for the beginning

NSMakeRange(string.length-2,2); // to the end

例えば ​​-

//for the start
[yourString stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0,2)];

//for the end
[yourString stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(yourString.length,2)];

より長い長さを範囲に指定して、確実に \n を取ることができます。

于 2012-06-27T06:14:31.293 に答える
1
NSString* str = @"hdskfh   dsakjfh akhf kasdhfk asdfkjash fkadshf1234        ";
NSRange rng = [str rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: [str stringByReplacingOccurrencesOfString: @" " withString: @""]] options: NSBackwardsSearch];
str = [str substringToIndex: rng.location+1];
于 2012-06-27T06:14:55.933 に答える
1

次のコードを使用して、先頭と末尾から \n を削除します

NSString *str = @"\n test test \n test \n";

int firstOccurance = [str rangeOfString:@"\n"].location;
if (firstOccurance == 0) {
    str = [str substringFromIndex:1];
}

int lastOccurance = [str rangeOfString:@"\n" options:NSBackwardsSearch].location;
if (lastOccurance == str.length - 1) {
    str = [str substringToIndex:str.length - 2];
}
于 2012-06-27T06:15:29.530 に答える
1

hasPrefixとで試すことができますhasSuffix

例えば

NSString *str = @"\n This is a \n test \n";

if ([str hasPrefix:@"\n"])
{
     //remove it
}

if ([str hasSuffix:@"\n"])
{
      //remove it
}
于 2012-06-27T06:20:55.033 に答える
1

stringByTrimmingCharactersInSet文字列の両端から空白を削除するために使用できます。

NSString* str = [myString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
于 2012-06-27T06:26:11.940 に答える