- implemented componentsSeparatedByCharactersInSet:

This commit is contained in:
Arkadiusz Młynarczyk authored and Alexander Ljungberg committed 2010-09-10 18:58:02 -04:00
1 parent 6bc8a53618
commit 8eefb90944
1 file changed
+31
+31
View File
@@ -268,6 +268,37 @@ var CPStringRegexSpecialCharacters = [
return split(aString);
}
/*!
Tokenizes the receiver string using the charactes
in a given set. For example, if the receiver is:
\c "Baku baku to jest skład."
and the set is [CPCharacterSet whitespaceCharacterSet]
the returned array would contain:
<pre> ["Baku", "baku", "to", "jest", "", "skład."] </pre>
Adjacent occurences of the separator characters produce empty strings in the result.
@author Arkadiusz Młynarczyk <arek@tupux.com>
@param A character set containing the characters to use to split the receiver. Must not be nil.
@return An CPArray object containing substrings from the receiver that have been divided by characters in separator.
*/
- (CPArray)componentsSeparatedByCharactersInSet:(CPCharacterSet)separator
{
CPMutableArray components = [CPMutableArray array];
if (separator && self.length)
{
CPRange componentRange = CPMakeRange(0, 0);
for (var i=0; i < self.length; i++) {
if ([separator characterIsMember:self.charAt(i)]) {
componentRange.length = i - componentRange.location;
[components addObject:[self substringWithRange:componentRange]];
componentRange.location += componentRange.length;
}
};
}
return components;
}
/*!
Returns a substring starting from the specified index to the end of the receiver.
@param anIndex the starting string (inclusive)