我从数据库中以字符串的形式接收数据,如下所示:
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数字中添加一个,而不仅仅是整数。
我怎么能做到这一点?
答案 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);
}
它的工作......