2012-03-22 85 views
0

我有一個NSString *字符串= @「606」,我想在兩位數後加一個「:」冒號。
輸出應該是這樣的:6:06
這可能嗎?在NString中添加字符或特殊字符?

幫助將被佔用。
非常感謝。

+0

冒號只在一位數後。請澄清你的問題並提供所有可能的例子。 – 2012-03-22 18:54:40

+0

@Evan讓我清除一個例子:NSString * string = @「606」;並且只需要在此「String」中添加冒號後返回String,例如。 「6:06」。我希望這將清楚。謝謝你.. – 2012-03-22 19:13:31

+1

你有一個'NSDate'對象,你從中生成字符串'606'?如果你這樣做,使用相同的'NSDate'生成'6:06'更容易。 – sch 2012-03-22 19:16:33

回答

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

我更喜歡這個版本。 – 2012-03-22 19:25:31

0

不管是什麼,它都是2位數嗎?否則,您可以從參數中構建自定義字符串。

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

UPDATE

如果你只需要經過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]; 

希望這會有所幫助。

+0

但我只有一個字符串,其中包含606後計算time.So有什麼辦法,因爲它不能幫助。 – 2012-03-22 19:12:39

+0

查看我的更新。希望這會有所幫助。 – 2012-03-22 19:23:54

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)來提取時間分量並將它們與冒號組合。