NSString+BUAddtion.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. //
  2. // NSString+URLEncoding.h
  3. // BUAdSDK
  4. //
  5. // Created by carl on 2017/10/26.
  6. // Copyright © 2017年 bytedance. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. typedef NS_ENUM(NSUInteger, BULanguageType) {//"万"转换规则
  11. BULanguageType_showWan = 0, //直接拼接万,默认
  12. BULanguageType_showNum = 1, //直接展示数字
  13. };
  14. @interface NSString (BU_URLCoding)
  15. - (nullable NSString *)bu_URLEncodedString;
  16. - (nullable NSString *)bu_URLDecodedString;
  17. - (nullable NSString *)bu_URLEncodedStringWithCustomSet;
  18. @end
  19. @interface NSString (BU_Encryption)
  20. - (nullable NSString *)bu_sha256;
  21. /**
  22. * @brief 返回自身的md5
  23. * @return 返回自身的md5的16进制字串
  24. */
  25. - (nullable NSString *)bu_MD5HashString;
  26. @end
  27. @interface NSString (BU_NumberToWan)
  28. /// 数字转换成x万(以1w为界限,小于1w显示原始数字) 没有”万“走另一套展示逻辑
  29. + (NSString *)bu_numberToWan:(NSInteger)target wan:(NSString *)wan;
  30. /// 大于1w就用k表示,不大于就直接展示多少个评分
  31. + (NSString *)bu_numberToThousand:(NSInteger)target;
  32. /// 0-9999 = 实际数值
  33. /// 1w - 9999w = (实际数值 / 10000) w+
  34. /// 1亿+ = 9999w+
  35. /// @param target 实际数值
  36. /// @param name 单位 如w/万
  37. + (NSString *)bu_numberShortToW:(NSInteger)target name:(nonnull NSString *)name;
  38. @end
  39. @interface NSString (BU_URLStringAppend)
  40. /*
  41. *
  42. string转URL
  43. */
  44. + (nullable NSURL *)bu_URLWithURLString:(NSString *)str;
  45. /*
  46. *
  47. string转字典
  48. */
  49. + (NSDictionary*)bu_parametersOfURLQueryString:(NSString*)urlString;
  50. /*
  51. *
  52. url字符串拼接参数,需要判断是否是第一个
  53. */
  54. + (NSString *)bu_urlStringWithOriginUrlString:(NSString *)originUrlString appendParameters:(NSDictionary *)parameters;
  55. + (NSString *)bu_urlStringWithBaseUrlString:(NSString *)baseUrlString requestURLString:(NSString *)requestURLString;
  56. + (NSString *)bu_urlStringWithUrlString:(NSString *)urlString parameterString:(NSString *)parameterString;
  57. /*
  58. * 格式转化
  59. 222222 -> 222,222
  60. */
  61. + (NSString *)bu_convertNumberFormatter:(NSString *)str;
  62. /// 正则匹配字符
  63. /// @param pattern 正则表达式
  64. /// @param withTemplate 返回样式: "$1 + $2"
  65. /// @param error 错误信息
  66. - (nullable NSString *)bu_replacingWithPattern:(NSString * _Nonnull)pattern withTemplate:(NSString * _Nonnull)withTemplate error:(NSError **)error;
  67. @end
  68. @interface NSString (BU_Sandbox)
  69. /**
  70. * 获取缓存路径
  71. *
  72. * @return path where to cache
  73. */
  74. - (NSString *)bu_CachePath;
  75. /**
  76. * @brief 获取程序的用户文档目录的路径加上自身
  77. * @return 用户文档目录路径字串加上自身,该字符串是自动释放的
  78. */
  79. - (NSString *)bu_DocumentsPath;
  80. @end
  81. @interface NSString(BU_JSONValue)
  82. - (nullable id)bu_JSONValue:(NSError **)error;
  83. + (nullable id)bu_objectWithJSONData:(nullable NSData *)inData error:(NSError **)outError;
  84. @end
  85. @interface NSString(BU_Time)
  86. + (NSString*)bu_dateNowString;
  87. + (NSString*)bu_dateStringSince:(NSTimeInterval)timeInterval;
  88. + (NSNumber*)bu_currentInterval;
  89. @end
  90. @interface NSString(BU_Random)
  91. /* @deccription生成随机字符
  92. * @param count 多少位随机数
  93. */
  94. + (NSString *)randomStringWithCount:(NSUInteger)count;
  95. @end
  96. @interface NSString (BU_Size)
  97. - (CGSize)bu_boundingRectWithSize:(CGSize)size font:(UIFont *)font;
  98. @end
  99. @interface NSString (BU_CheckingResult)
  100. - (nullable NSString *)bu_substringWithPattern:(NSString *)pattern;
  101. @end
  102. NS_ASSUME_NONNULL_END