数量为

时间:2017-01-12 07:58:47

标签: ios objective-c

我从数据库中以字符串的形式接收数据,如下所示:

NSString *strTemp = @"000014";

我需要在上面添加1,
比如000014 + 1 = 000015      000015 + 1 = 000016 取决于一些计数。

像:

for(int i =1; i < 5; i++)
{
   int iTemp = [strTemp intValue] +i;  // here i am getting 15 as int no not like 000015, 000016, 000017 ETC
} 

我甚至试过NSString *strWarNo = [NSString stringWithFormat:@"%07d", iTemp];但是前导数字可能不一定......就像db中的字符串将是@&#34; 0023&#34;或@&#34; 0000056&#34;。

我需要在while数字中添加一个,而不仅仅是整数。

我怎么能做到这一点?

4 个答案:

答案 0 :(得分:1)

您可以使用NSString以上的类别来实现此目的。我尝试了以下代码并且工作正常。

.h类别

#import <Foundation/Foundation.h>

@interface NSString (Arithematic)
- (NSString*)stringByAddingNumber:(NSInteger)number;
@end

.m类别

#import "NSString+Arithematic.h"

@implementation NSString (Arithematic)
- (NSString*)stringByAddingNumber:(NSInteger)number
{
    //To keep the width same as original string
    int numberLength = (int)self.length;

    NSInteger originalNumber = self.integerValue;

    originalNumber += number;

    NSString *resultString = [NSString stringWithFormat:@"%0*ld",numberLength,originalNumber];

    return resultString;
}
@end

用法:

NSString *strTemp = @"000014";
for(int i =1; i < 5; i++)
{
    strTemp = [strTemp stringByAddingNumber:i];
}
NSLog(@"result %@",strTemp);

希望这有帮助。

答案 1 :(得分:0)

有一种简单的方法可以通过将字符串转换为NSInteger然后将所需的值添加到其中,然后通过在数字之前附加所需的零值将整数转换为字符串。

-(NSString *)addNumber:(NSInteger)number toMyString:(NSString)myNum{
    NSInteger numb = myString.integerValue;
    numb += myNum;
    NSString myNewString = [NSString stringWithFormat:@"0%d",myNewString];
    return myNum;
}

答案 2 :(得分:0)

如果要格式化前导零的数字,请使用NSNumberFormatter

将号码存储为数字(不是字符串),然后将其视为数字。

当您需要显示它时,请使用NSNumberFormatter添加前导零。

您可以在此处详细了解NSNumberFormatter并添加前导零... NSNumberFormatter leading 0's and decimals

答案 3 :(得分:-1)

在“num”中添加您必须添加的号码,并传递您的号码字符串“strNumber”

EX。 [self addNumber:10 andYourString:@“000014”];

-(void)addNumber:(int)num andYourString:(NSString *)strNumber {

    NSString * str_your_number = strNumber;

    NSString * prevous_char = [NSString stringWithFormat:@"%c", 
[str_your_number characterAtIndex:0]];

    int number_zero = 0;

    BOOL is_leading_zero = true;

    for(int i = 0 ; i < str_your_number.length ; i++){
        NSString *theCharacter = [NSString stringWithFormat:@"%c", [str_your_number characterAtIndex:i]];
        if(is_leading_zero == true){
            if([prevous_char isEqualToString:theCharacter]) {
                number_zero++;
                prevous_char = theCharacter;
            }
            else {
                is_leading_zero = false;
            }
        }
        NSLog(@"%@",theCharacter);
    }

    NSLog(@"%d",number_zero);

    NSInteger you_numb = strNumber.integerValue;
    you_numb += num;

    NSString * str_zero = @"";
    for(int j = 0 ; j < number_zero ; j++) {
        str_zero = [str_zero stringByAppendingString:@"0"];
    }

    NSString * final_str = [NSString stringWithFormat:@"%@%ld",str_zero,(long)you_numb];
    NSLog(@"%@",final_str);
}

它的工作......