1

次の文字列があります。

R$1.234.567,89

次のようにする必要があります: 1.234.567.89

これどうやってするの?

これは私が試したものです:

NSString* cleanedString = [myString stringByReplacingOccurrencesOfString:@"." withString:@""];
cleanedString = [[cleanedString stringByReplacingOccurrencesOfString:@"," withString:@"."]
                                     stringByTrimmingCharactersInSet: [NSCharacterSet symbolCharacterSet]];

それは機能しますが、もっと良い方法があるはずだと思います。提案?

4

2 に答える 2

0

数字が常に $ の後にあり、その前にさらに文字がある場合は、次のようにすることができます。

NSString* test = @"R$1.234.567,89";
NSString* test2 = @"TESTERR$1.234.567,89";
NSString* test3 = @"HEllo123344R$1.234.567,89";


NSLog(@"%@",[self makeCleanedText:test]);
NSLog(@"%@",[self makeCleanedText:test2]);
NSLog(@"%@",[self makeCleanedText:test3]);

メソッドは次のとおりです。

- (NSString*) makeCleanedText:(NSString*) text{

    int indexFrom = 0;

    for (NSInteger charIdx=0; charIdx<[text length]; charIdx++)
        if ( '$' == [text characterAtIndex:charIdx])
            indexFrom = charIdx + 1;

    text = [text stringByReplacingOccurrencesOfString:@"," withString:@"."];
    return [text substringFromIndex:indexFrom];
}

結果は次のとおりです。

2013-10-20 22:35:39.726 test[40546:60b] 1.234.567.89
2013-10-20 22:35:39.728 test[40546:60b] 1.234.567.89
2013-10-20 22:35:39.731 test[40546:60b] 1.234.567.89
于 2013-10-20T20:29:39.967 に答える
0

文字列から最初の 2 文字を削除したいだけの場合は、これを行うことができます

NSString *cleanedString = [myString substringFromIndex:2];
于 2013-10-20T20:12:18.050 に答える