我有一个NSString * string = @“606”,我想在两位数之后添加一个“:”冒号。
输出应如下所示:6:06
这有可能吗?
帮助将被挪用 非常感谢你。
答案 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];
希望这会有所帮助。