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