forked from tangqiaoboy/xcode_tool
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNSStringWrapper.m
More file actions
157 lines (130 loc) · 4.14 KB
/
Copy pathNSStringWrapper.m
File metadata and controls
157 lines (130 loc) · 4.14 KB
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
//
// NSStringWrapper.m
// NSStringWrapper
//
// Created by Tang Qiao on 12-2-4.
// Copyright (c) 2012年 blog.devtang.com. All rights reserved.
//
#import "NSStringWrapper.h"
@implementation NSString(Wrapper)
#define JavaNotFound -1
/** Java-like method. Returns the char value at the specified index. */
- (unichar) charAt:(int)index {
return [self characterAtIndex:index];
}
/**
* Java-like method. Compares two strings lexicographically.
* the value 0 if the argument string is equal to this string;
* a value less than 0 if this string is lexicographically less than the string argument;
* and a value greater than 0 if this string is lexicographically greater than the string argument.
*/
- (int) compareTo:(NSString*) anotherString {
return [self compare:anotherString];
}
/** Java-like method. Compares two strings lexicographically, ignoring case differences. */
- (int) compareToIgnoreCase:(NSString*) str {
return [self compare:str options:NSCaseInsensitiveSearch];
}
/** Java-like method. Returns true if and only if this string contains the specified sequence of char values. */
- (BOOL) contains:(NSString*) str {
NSRange range = [self rangeOfString:str];
return (range.location != NSNotFound);
}
- (BOOL) startsWith:(NSString*)prefix {
return [self hasPrefix:prefix];
}
- (BOOL) endsWith:(NSString*)suffix {
return [self hasSuffix:suffix];
}
- (BOOL) equals:(NSString*) anotherString {
return [self isEqualToString:anotherString];
}
- (BOOL) equalsIgnoreCase:(NSString*) anotherString {
return [[self toLowerCase] equals:[anotherString toLowerCase]];
}
- (int) indexOfChar:(unichar)ch{
return [self indexOfChar:ch fromIndex:0];
}
- (int) indexOfChar:(unichar)ch fromIndex:(int)index{
int len = self.length;
for (int i = index; i < len; ++i) {
if (ch == [self charAt:i]) {
return i;
}
}
return JavaNotFound;
}
- (int) indexOfString:(NSString*)str {
NSRange range = [self rangeOfString:str];
if (range.location == NSNotFound) {
return JavaNotFound;
}
return range.location;
}
- (int) indexOfString:(NSString*)str fromIndex:(int)index {
NSRange fromRange = NSMakeRange(index, self.length - index);
NSRange range = [self rangeOfString:str options:NSLiteralSearch range:fromRange];
if (range.location == NSNotFound) {
return JavaNotFound;
}
return range.location;
}
- (int) lastIndexOfChar:(unichar)ch {
int len = self.length;
for (int i = len-1; i >=0; --i) {
if ([self charAt:i] == ch) {
return i;
}
}
return JavaNotFound;
}
- (int) lastIndexOfChar:(unichar)ch fromIndex:(int)index {
int len = self.length;
if (index >= len) {
index = len - 1;
}
for (int i = index; i >= 0; --i) {
if ([self charAt:i] == ch) {
return index;
}
}
return JavaNotFound;
}
- (int) lastIndexOfString:(NSString*)str {
NSRange range = [self rangeOfString:str options:NSBackwardsSearch];
if (range.location == NSNotFound) {
return JavaNotFound;
}
return range.location;
}
- (int) lastIndexOfString:(NSString*)str fromIndex:(int)index {
NSRange fromRange = NSMakeRange(0, index);
NSRange range = [self rangeOfString:str options:NSBackwardsSearch range:fromRange];
if (range.location == NSNotFound) {
return JavaNotFound;
}
return range.location;
}
- (NSString *) substringFromIndex:(int)beginIndex toIndex:(int)endIndex {
if (endIndex <= beginIndex) {
return @"";
}
NSRange range = NSMakeRange(beginIndex, endIndex - beginIndex);
return [self substringWithRange:range];
}
- (NSString *) toLowerCase {
return [self lowercaseString];
}
- (NSString *) toUpperCase {
return [self uppercaseString];
}
- (NSString *) trim {
return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
- (NSString *) replaceAll:(NSString*)origin with:(NSString*)replacement {
return [self stringByReplacingOccurrencesOfString:origin withString:replacement];
}
- (NSArray *) split:(NSString*) separator {
return [self componentsSeparatedByString:separator];
}
@end