我有一个字符串0023525631
,但我想要的是字符串23525631
——没有前导零。我应该怎么做?
我有一个字符串0023525631
,但我想要的是字符串23525631
——没有前导零。我应该怎么做?
像这样使用正则表达式:
NSString *str =@"000034234247236000049327428900000";
NSRange range = [str rangeOfString:@"^0*" options:NSRegularExpressionSearch];
str= [str stringByReplacingCharactersInRange:range withString:@""];
NSLog(@"str %@",str);
O/P:-字符串 34234247236000049327428900000
如果你是数字,你可以将字符串转换为整数或将整数转换为字符串。
或者
声明指向该字符串的指针,并将该指针设置为字符串的开始位置,然后遍历该字符串并在该指针上添加零的数量以使其位于字符串开头。然后你会得到一个指向以零前面开始的字符串的指针,你必须使用该指针来获取没有零的字符串,如果使用字符串,你将获得带有零的字符串。
或者
你可以反转字符串,并从反转后的字符串开始迭代,如果你得到某个不等于“0”的字符,就停止迭代,否则将该字符重写为 null。之后,你可以反转字符串以获取没有前导零的整数字符串。
NSString *testStr = @"001234056";
testStr = [NSString stringWithFormat:@"%d",[testStr intValue];
我在这里假设您只想删除前导零。即@"*00*1234*0*56"变成@"1234*0*56",而不是@"123457"。为此,我会使用NSScanner。
// String to strip
NSString *test = @"001234056";
// Skip leading zeros
NSScanner *scanner = [NSScanner scannerWithString:test];
NSCharacterSet *zeros = [NSCharacterSet
characterSetWithCharactersInString:@"0"];
[scanner scanCharactersFromSet:zeros intoString:NULL];
// Get the rest of the string and log it
NSString *result = [test substringFromIndex:[scanner scanLocation]];
NSLog(@"%@ reduced to %@", test, result);
没有正则表达式
func trimLeadingZeroes(input: String) -> String {
var result = ""
for character in input.characters {
if result.isEmpty && character == "0" { continue }
result.append(character)
}
return result
}
使用正则表达式
func trimLeadingZeroes(input: String) -> String {
return input.stringByReplacingOccurrencesOfString(
"^0+(?!$)",
withString: "",
options: .RegularExpressionSearch,
range: Range(start: input.startIndex, end: input.endIndex)
)
}
不需要变得像其他答案那样复杂。
这么简单的方法就足够了。
while ([string hasPrefix:@"0"]) {
string = [string substringFromIndex:1];
}
注意:
•如果你的字符串数字类似于0.12
,那么你将得到.12
。如果不需要这样,只需检查是否hasPrefix:@"."
并在前面加上@"0"。
•如果你的字符串数字仅为0
,则什么都不会留下。如果不需要这样,只需检查是否isEqualToString:@""
并设置为@"0"
•如果速度对你非常非常重要,你可以通过字符迭代(扫描)并在达到非零值(索引n
)时break;
,然后你会得到substringFromIndex:n
-(NSString *)trimZero:(NSString*)inputString {
NSScanner *scanner = [NSScanner scannerWithString:inputString];
NSCharacterSet *zeros = [NSCharacterSet
characterSetWithCharactersInString:@"0"];
[scanner scanCharactersFromSet:zeros intoString:NULL];
return [inputString substringFromIndex:[scanner scanLocation]];
}
用法:
NSString *newString = [self trimZero:yourString];
这是基于C字符串的实现。
char *cstr = [string UTF8String];
while (*cstr == '0')
++cstr;
return [NSString stringWithUTF8String:cstr];