Padding string to left

后端 未结 5 1011
渐次进展
渐次进展 2020-12-06 09:12

How can one pad a string to left in objective c. E.g if I have an integer value of 6 I want it to be displayed as 06.

I use stringByPaddingToLength: but

5条回答
  •  不思量自难忘°
    2020-12-06 09:44

    Clumsy, but it'll do the job.

    @implementation NSString (LeftPadding)
    
    - (NSString *)stringByPaddingTheLeftToLength:(NSUInteger)newLength withString:(NSString *)padString startingAtIndex:(NSUInteger)padIndex
    {
        if ([self length] <= newLength)
            return [[@"" stringByPaddingToLength:newLength - [self length] withString:padString startingAtIndex:padIndex] stringByAppendingString:self];
        else
            return [[self copy] autorelease];
    }
    
    @end
    

    Then you can do:

    NSString *test1 = [@"6" stringByPaddingTheLeftToLength:10 withString:@"0" startingAtIndex:0];
    // test1 = "0000000006"
    
    NSString *test2 = [@"asdf" stringByPaddingTheLeftToLength:10 withString:@"qwer" startingAtIndex:0];
    // test2 = "qwerqwasdf"
    
    NSString *test3 = [@"More than ten characters" stringByPaddingTheLeftToLength:10 withString:@"bamboo" startingAtIndex:0];
    // test3 = "More than ten characters"
    
    NSString *test4 = [test3 stringByPaddingTheLeftToLength:100 withString:test2 startingAtIndex:0];
    // test4 = "qwerqwasdfqwerqwasdfqwerqwasdf...qwerqMore than ten characters"
    

提交回复
热议问题