文字列にいくつかの改行があります。ただし、文字列の先頭または末尾にある場合にのみトリミングする必要があります。間にあれば大丈夫です。どうやってするか?
質問する
597 次
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 に答える