1

わかりました、文字列「hello my name is donald」 があるとしましょう

今、私は「 hello」から「」まですべてを削除したいと思います。ismy namehis son

したがって、基本的には、単に実行stringByReplacingOccurrencesOfStringするだけでは機能しません。

(私はRegexLiteを持っています)

どうすればいいですか?

4

3 に答える 3

2

以下のように使用すると、

NSString *hello = @"his is name is isName";
NSRange rangeSpace = [hello rangeOfString:@" " 
                                  options:NSBackwardsSearch];
NSRange isRange = [hello rangeOfString:@"is" 
                               options:NSBackwardsSearch 
                                 range:NSMakeRange(0, rangeSpace.location)];

NSString *finalResult = [NSString stringWithFormat:@"%@ %@",[hello substringToIndex:[hello rangeOfString:@" "].location],[hello substringFromIndex:isRange.location]];
NSLog(@"finalResult----%@",finalResult);
于 2012-07-16T10:34:37.987 に答える
0

次のNSStringカテゴリが役立つ場合があります。それは私にとってはうまくいきますが、私が作成したものではありません。著者に感謝します。

NSString + Whitespace.h

#import <Foundation/Foundation.h>

@interface NSString (Whitespace)

- (NSString *)stringByCompressingWhitespaceTo:(NSString *)seperator;

@end

NSString + Whitespace.m

import "NSString+Whitespace.h"

@implementation NSString (Whitespace)
- (NSString *)stringByCompressingWhitespaceTo:(NSString *)seperator
{
    //NSArray *comps = [self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    NSArray *comps = [self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

    NSMutableArray *nonemptyComps = [[NSMutableArray alloc] init];

    // only copy non-empty entries
    for (NSString *oneComp in comps)
    {
        if (![oneComp isEqualToString:@""])
        {
            [nonemptyComps addObject:oneComp];
        }

    }

    return [nonemptyComps componentsJoinedByString:seperator];  // already marked as autoreleased
}
@end
于 2012-07-16T10:01:42.960 に答える
0

文字列が「こんにちは私の名前は」で始まることが常にわかっている場合は、最後のスペースを含めて17文字になります。したがって、

NSString * hello = "hello my name is Donald Trump";
NSString * finalNameOnly = [hello substringFromIndex:17];
于 2012-07-16T15:50:51.440 に答える