【问题标题】:iphone sdk - Remove all numbers except for characters a-z from a stringiphone sdk - 从字符串中删除除字符 a-z 之外的所有数字
【发布时间】:2011-04-25 08:42:18
【问题描述】:

在我的应用程序中,我想从字符串中删除除字符 a-z 之外的数字。我怎样才能只获得字符?

【问题讨论】:

  • 您的目标是什么版本的 SDK/OS?

标签: iphone string


【解决方案1】:

这是不需要任何冗长编码的简短答案

NSString *newString = [[tempstr componentsSeparatedByCharactersInSet:
                            [[NSCharacterSet letterCharacterSet] invertedSet]] componentsJoinedByString:@""];`

迅速 3:

(tempstr.components(separatedBy:NSCharacterSet.letters.inverted)).joined(separator: "")

例如:

("abc123".components(separatedBy:NSCharacterSet.letters.inverted)).joined(separator: "")

【讨论】:

    【解决方案2】:

    我找到了答案: 来自remove-all-but-numbers-from-nsstring

    NSString *originalString = @"(123) 123123 abc";
    
    NSLog(@"%@", originalString);
    NSMutableString *strippedString = [NSMutableString 
                                       stringWithCapacity:originalString.length];
    
    NSScanner *scanner = [NSScanner scannerWithString:originalString];
    NSCharacterSet *numbers = [NSCharacterSet 
                               characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyz"];
    
    while ([scanner isAtEnd] == NO) {
        NSString *buffer;
        if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {
            [strippedString appendString:buffer];
    
        } else {
            [scanner setScanLocation:([scanner scanLocation] + 1)];
        }
    }
    
    NSLog(@"%@", strippedString);
    

    【讨论】:

    • 我不是 xcode 方面的专家,但是没有更简单的解决方案来执行这个简单的任务吗?
    • 我很惊讶这以前从未见过,但这个答案是从 stackoverflow.com/questions/1129521/remove-all-but-numbers-from-nsstringst 中逐字获取的很高兴复制别人这样的答案。
    • 对不起,我不知道这个链接。实际上我的一个朋友给出了这个答案,所以我只是复制到这里..我将如何添加你的链接作为参考。
    【解决方案3】:
    NSString *stringToFilter = @"filter-me";
    
    
        NSMutableString *targetString = [NSMutableString string];
    
    
        //set of characters which are required in the string......
        NSCharacterSet *okCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyz"];
    
    
        for(int i = 0; i < [stringToFilter length]; i++)
        {
            unichar currentChar = [stringToFilter characterAtIndex:i];
            if([okCharacterSet characterIsMember:currentChar]) 
            {
                [targetString appendFormat:@"%C", currentChar];
            }
        }
    
    
        NSLog(targetString);    
    
    
        [super viewDidLoad];
    }
    

    这是给我的答案,效果很好

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 2015-11-24
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 2017-04-05
      • 2010-10-24
      相关资源
      最近更新 更多