在NSstring中添加字符或特殊字符?

时间:2012-03-22 18:52:25

标签: iphone

我有一个NSString * string = @“606”,我想在两位数之后添加一个“:”冒号。
输出应如下所示:6:06
这有可能吗?

帮助将被挪用 非常感谢你。

3 个答案:

答案 0 :(得分:3)

您可以在小时和分钟之间添加列,如下所示:

NSString *string = @"606";
NSString *result = [string stringByReplacingCharactersInRange:NSMakeRange(string.length-2, 0) withString:@":"];
NSLog(@"%@", result);

这将给出以下结果

@"606"  =>  @"6:06"
@"1200" =>  @"12:00"
@"1406" =>  @"14:30"

注意:这仅在字符串有3或4个字符时才有效,但根据您的问题就是这种情况。

答案 1 :(得分:2)

因为您在几小时和几分钟内没有两个单独的对象,请使用:

NSString *newTimeString, *hour, *minute;
NSUInteger length = [timeString length];
if (length == 3)
{
    hour = [timeString substringToIndex:1];
    minute = [timeString substringFromIndex:2];
}
else
{
    hour = [timeString substringToIndex:2];
    minute = [timeString substringFromIndex:3];
}
newTimeString = [NSString stringWithFormat:@"%@:%@", hour, minute];

我用了很长的版本来说明这个概念。基本上,使用原始字符串(timeString)的长度来提取时间组件并将它们与冒号组合。

答案 2 :(得分:0)

无论如何都是2位数?否则,您可以从参数构建自定义字符串。

NSString *string = [NSString stringWithFormat:@"%@:%@", hours, minutes];

更新

如果您只需要在1个字符后添加冒号,则可以这样做。虽然我建议找一个更安全的方法,因为如果你有一个两位数的小时,这可能是不准确的。

NSString *hour = [NSString substringToIndex:1]; // double check the index
NSString *min = [NSString substringFromIndex:1]; // double check the index
NSString *time = [NSString stringWithFormat:@"%@:%@", hour, min];

希望这会有所帮助。