[关闭]
@fiy-fish 2015-07-04T17:07:28.000000Z 字数 676 阅读 1416

压缩字符串

Objective-c


/*
//压缩字符串
//比如输入@"aaabbbcceaa" 输出@"3a3b2c1e2a"
+(NSString*)compString:(NSString*)srcStr;

*/

  1. //我的思路
  2. //1.循环取出字符串中得字母,进行比较,如果相同就计数加一
  3. //注意:
  4. //[ str2 appendFormat:@"%d%c",count,a];必须放到else里面
  5. //如果没有
  6. /*f (i == length-2) {
  7. [ str2 appendFormat:@"%d%c",count,a];
  8. }
  9. */
  10. //程序不会取到最后两个字符,会卡在count++里面
  11. int main()
  12. {
  13. NSString *str1 = @"aaabbbcceaa";
  14. char a,b;
  15. int count = 1;
  16. NSInteger length = [str1 length];
  17. NSLog(@"length = %ld",length);
  18. NSMutableString *str2 = [NSMutableString string];
  19. for (NSInteger i=0; i<length-1; i++) {
  20. a = [str1 characterAtIndex:i];
  21. b = [str1 characterAtIndex:i+1];
  22. if (a==b) {
  23. count++;
  24. }
  25. else
  26. {
  27. [ str2 appendFormat:@"%d%c",count,a];
  28. count = 1;
  29. }
  30. if (i == length-2) {
  31. [ str2 appendFormat:@"%d%c",count,a];
  32. }
  33. }
  34. NSLog(@"str2---->%@",str2);
  35. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注