Samond Classes Library 1.2.6-STABLE build 219
NSString+SCString.h
Go to the documentation of this file.
1 //
2 // NSString+SCString.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 19.08.07.
6 // Copyright (c) 2007 - 2018 by Samond Development Corporation. All rights reserved.
7 //
8 
24 #import <Foundation/Foundation.h>
27 #import <scl/SCTypes.h>
28 //#import <scl/SCArray.h>
29 
30 #pragma mark -
31 #pragma mark Boolean Constants
32 
41 #define SC_BOOL_YES @"YES"
42 
47 #define SC_BOOL_NO @"NO"
48 
53 #define SC_BOOL_TRUE @"TRUE"
54 
59 #define SC_BOOL_FALSE @"FALSE"
60 
65 #define SC_BOOL_ON @"ON"
66 
71 #define SC_BOOL_OFF @"OFF"
72 
77 #define SC_BOOL_RU_YES @"ДА"
78 
83 #define SC_BOOL_RU_NO @"НЕТ"
84 
89 #define SC_BOOL_RU_TRUE @"ИСТИНА"
90 
95 #define SC_BOOL_RU_FALSE @"ЛОЖЬ"
96 
101 #define SC_BOOL_RU_ON @"ВКЛ"
102 
107 #define SC_BOOL_RU_OFF @"ВЫКЛ"
108 
109 #pragma mark -
110 #pragma mark String Constants
111 
120 #define SC_STR_EMPTY @""
121 
126 #define SC_STR_SPACE @" "
127 
132 #define SC_STR_TAB @"\t"
133 
134 #pragma mark Digital String Constants
135 
144 #define SC_STR_ZERO @"0"
145 
150 #define SC_STR_ONE @"1"
151 
156 #define SC_STR_TWO @"2"
157 
162 #define SC_STR_THREE @"3"
163 
168 #define SC_STR_FOUR @"4"
169 
174 #define SC_STR_FIVE @"5"
175 
180 #define SC_STR_SIX @"6"
181 
186 #define SC_STR_SEVEN @"7"
187 
192 #define SC_STR_EIGHT @"8"
193 
198 #define SC_STR_NINE @"9"
199 
200 #pragma mark -
201 #pragma mark Character Constants
202 
211 #define SC_CHR_SPACE ' '
212 
217 #define SC_CHR_TAB '\t'
218 
219 #pragma mark Digital Character Constants
220 
229 #define SC_CHR_ZERO '0'
230 
235 #define SC_CHR_ONE '1'
236 
241 #define SC_CHR_TWO '2'
242 
247 #define SC_CHR_THREE '3'
248 
253 #define SC_CHR_FOUR '4'
254 
259 #define SC_CHR_FIVE '5'
260 
265 #define SC_CHR_SIX '6'
266 
271 #define SC_CHR_SEVEN '7'
272 
277 #define SC_CHR_EIGHT '8'
278 
283 #define SC_CHR_NINE '9'
284 
289 #define SC_CHR_DOT '.'
290 
295 #define SC_CHR_COMMA ','
296 
301 #define SC_CHR_PLUS '+'
302 
307 #define SC_CHR_MINUS '-'
308 
309 #pragma mark -
310 #pragma mark Format Constants
311 
320 #define SC_FMT_OCTAL @"%qo"
321 
326 #define SC_FMT_UDECIMAL @"%qu"
327 
332 #define SC_FMT_SDECIMAL @"%qd"
333 
338 #define SC_FMT_HEX @"%qX"
339 
344 #define SC_FMT_FLOAT @"%f"
345 
350 #define SC_FMT_DOUBLE @"%f"
351 
356 #define SC_FMT_POINTER @"%p"
357 
362 #define SC_FMT_OBJECT @"%@"
363 
364 #pragma mark -
365 #pragma mark Class Constants
366 
375 #define NSStringClass @"NSString"
376 
377 
378 #pragma mark -
379 
396 
412 @property (nonatomic, readonly, assign) NSString *trimmedString;
413 
425 @property (nonatomic, readonly, assign) NSString *normalizedString;
426 
431 @property (nonatomic, readonly, assign) SCIndex wordsCount;
432 
437 @property (nonatomic, readonly, assign) NSString *firstWord;
438 
443 @property (nonatomic, readonly, assign) NSString *lastWord;
444 
449 @property (nonatomic, readonly, assign) NSString *endOfString;
450 
468 @property (nonatomic, readonly, assign) BOOL isBinaryString;
469 
474 @property (nonatomic, readonly, assign) BOOL isOctalString;
475 
480 @property (nonatomic, readonly, assign) BOOL isDecimalString;
481 
486 @property (nonatomic, readonly, assign) BOOL isHexadecimalString;
487 
492 @property (nonatomic, readonly, assign) BOOL isBooleanString;
493 
498 @property (nonatomic, readonly, assign) BOOL isFloatString;
499 
504 @property (nonatomic, readonly, assign) BOOL isDoubleString;
505 
510 @property (nonatomic, readonly, assign) SCULong binaryValue;
511 
516 @property (nonatomic, readonly, assign) SCULong octalValue;
517 
522 @property (nonatomic, readonly, assign) SCULong decimalValue;
523 
528 @property (nonatomic, readonly, assign) SCULong hexadecimalValue;
529 
534 @property (nonatomic, readonly, assign) BOOL booleanValue;
535 
547 @property (nonatomic, readonly, assign) NSString *reversedString;
548 
560 @property (nonatomic, readonly, assign) BOOL empty;
561 
566 @property (nonatomic, readonly, assign) NSString *stringWithUpperFirstLetter;
567 
570 #pragma mark -
571 #pragma mark Creating Strings
572 + (instancetype)stringWithCoder:(NSCoder *)coder;
573 + (instancetype)stringWithContentsOfSerializedFile:(NSString *)path;
574 + (instancetype)stringWithDataDictionary:(NSDictionary *)dictionary;
575 + (instancetype)stringWithDataDictionaryFromFile:(NSString *)path;
576 + (instancetype)stringWithStream:(SCStream *)stream;
577 + (instancetype)stringWithFileStream:(NSString *)path;
578 + (instancetype)stringWithData:(NSData *)data;
579 + (instancetype)stringWithContentsOfFile:(NSString *)path;
580 + (instancetype)stringWithContentsOfURL:(NSURL *)url;
581 + (instancetype)stringWithContentsOfURLString:(NSString *)urlString;
582 
583 + (instancetype)stringWithIndexSet:(NSIndexSet *)indexSet;
584 + (instancetype)stringWithCharacter:(unichar)character;
585 + (instancetype)stringWithCharacter:(unichar)character length:(SCIndex)length;
586 + (instancetype)stringWithLength:(SCUInteger)length;
587 + (instancetype)stringWithPointer:(void *)pointer;
588 + (instancetype)stringWithID:(id)object;
589 + (instancetype)stringWithFormat:(NSString *)format arguments:(va_list)arguments;
590 
591 #pragma mark -
592 #pragma mark Initializing Strings
593 - (instancetype)initWithIndexSet:(NSIndexSet *)indexSet;
594 - (instancetype)initWithCharacter:(unichar)character;
595 - (instancetype)initWithCharacter:(unichar)character length:(SCIndex)length;
596 - (instancetype)initWithLength:(SCUInteger)length;
597 - (instancetype)initWithPointer:(void *)pointer;
598 - (instancetype)initWithID:(id)object;
599 
600 #pragma mark -
601 #pragma mark Dividing Strings and Replacing Substrings
602 - (NSString *)ltrim;
603 - (NSString *)rtrim;
604 - (NSString *)trim;
605 - (NSString *)stringWithLeftCharacters:(SCIndex)characters;
606 - (NSString *)stringWithRightCharacters:(SCIndex)characters;
607 - (NSString *)skipLeftPart:(SCIndex)characters;
608 - (NSString *)skipRightPart:(SCIndex)characters;
609 
610 - (BOOL)isCorrectRange:(NSRange)range;
611 - (BOOL)existsSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
612 - (BOOL)existsSubstring:(NSString *)substring;
613 - (SCIndex)countOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
614 - (SCIndex)countOfSubstring:(NSString *)substring;
615 - (SCIndex)indexOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
616 - (SCIndex)indexOfSubstring:(NSString *)substring;
617 - (NSArray *)indexesOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
618 - (NSArray *)indexesOfSubstring:(NSString *)substring;
619 
620 - (NSString *)stringWithDeletedSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
621 - (NSString *)stringWithDeletedSubstring:(NSString *)substring;
622 - (NSString *)stringWithDeletedSubstringToIndex:(SCIndex)index;
623 - (NSString *)stringWithDeletedSubstringToRange:(NSRange)range;
624 - (NSString *)stringWithDeletedSubstringFromIndex:(SCIndex)index;
625 - (NSString *)stringWithDeletedSubstringWithRange:(NSRange)range;
626 
627 - (NSString *)stringWithReplacedSubstringToIndex:(SCUInteger)index withString:(NSString *)string;
628 - (NSString *)stringWithReplacedSubstringFromIndex:(SCUInteger)index withString:(NSString *)string;
629 - (NSString *)stringWithReplacedSubstringWithRange:(NSRange)range withString:(NSString *)string;
630 - (NSString *)stringWithReplacedSubstring:(NSString *)substring
631  withString:(NSString *)string
632  caseInsensitive:(BOOL)caseInsensitive;
633 - (NSString *)stringWithReplacedSubstring:(NSString *)substring withString:(NSString *)string;
634 
635 - (NSString *)stringWithInsertedString:(NSString *)string;
636 - (NSString *)stringWithInsertedString:(NSString *)string index:(SCUInteger)index;
637 
638 #pragma mark -
639 #pragma mark String Words
640 - (NSString *)word:(SCIndex)word;
641 
642 #pragma mark -
643 #pragma mark Comparing Strings
644 - (BOOL)isEqualToStrings:(NSString *)string, ... NS_REQUIRES_NIL_TERMINATION;
645 
646 #pragma mark -
647 #pragma mark РExpanding Strings
648 - (NSString *)leftExpandedStringToLength:(SCIndex)length character:(unichar)character;
649 - (NSString *)leftExpandedStringToLength:(SCIndex)length;
650 - (NSString *)leftZeroExpandedStringToLength:(SCIndex)length;
651 - (NSString *)rightExpandedStringToLength:(SCIndex)length character:(unichar)character;
652 - (NSString *)rightExpandedStringToLength:(SCIndex)length;
653 
654 + (instancetype)stringWithLeftExpandedString:(NSString *)string length:(SCIndex)length character:(unichar)character;
655 + (instancetype)stringWithLeftExpandedString:(NSString *)string length:(SCIndex)length;
656 + (instancetype)stringWithLeftZeroExpandedString:(NSString *)string length:(SCIndex)length;
657 + (instancetype)stringWithRightExpandedString:(NSString *)string length:(SCIndex)length character:(unichar)character;
658 + (instancetype)stringWithRightExpandedString:(NSString *)string length:(SCIndex)length;
659 
660 - (instancetype)initWithLeftExpandedString:(NSString *)string length:(SCIndex)length character:(unichar)character;
661 - (instancetype)initWithLeftExpandedString:(NSString *)string length:(SCIndex)length;
662 - (instancetype)initWithLeftZeroExpandedString:(NSString *)string length:(SCIndex)length;
663 - (instancetype)initWithRightExpandedString:(NSString *)string length:(SCIndex)length character:(unichar)character;
664 - (instancetype)initWithRightExpandedString:(NSString *)string length:(SCIndex)length;
665 
666 #pragma mark -
667 #pragma mark Adding Delimiters
668 - (NSString *)stringWithSeparator:(NSString *)separator left:(SCIndex)left;
669 - (NSString *)stringWithSpacesLeft:(SCIndex)left;
670 - (NSString *)stringWithSeparator:(NSString *)separator right:(SCIndex)right;
671 - (NSString *)stringWithSpacesRight:(SCIndex)right;
672 
673 + (instancetype)stringWithString:(NSString *)string separator:(NSString *)separator left:(SCIndex)left;
674 + (instancetype)stringWithString:(NSString *)string spacesLeft:(SCIndex)left;
675 + (instancetype)stringWithString:(NSString *)string separator:(NSString *)separator right:(SCIndex)right;
676 + (instancetype)stringWithString:(NSString *)string spacesRight:(SCIndex)right;
677 
678 - (instancetype)initWithString:(NSString *)string separator:(NSString *)separator left:(SCIndex)left;
679 - (instancetype)initWithString:(NSString *)string spacesLeft:(SCIndex)left;
680 - (instancetype)initWithString:(NSString *)string separator:(NSString *)separator right:(SCIndex)right;
681 - (instancetype)initWithString:(NSString *)string spacesRight:(SCIndex)right;
682 
683 #pragma mark -
684 #pragma mark Data Types Representation
685 + (instancetype)stringWithBinaryInteger:(SCULong)integer capacity:(SCCapacity)capacity;
686 + (instancetype)stringWithBinaryInteger:(SCULong)integer;
687 + (instancetype)stringWithOctalInteger:(SCULong)integer;
688 + (instancetype)stringWithDecimalInteger:(SCLong)integer separators:(BOOL)separators;
689 + (instancetype)stringWithDecimalInteger:(SCLong)integer;
690 + (instancetype)stringWithInteger:(SCLong)integer;
691 + (instancetype)stringWithHexadecimalInteger:(SCULong)integer capacity:(SCCapacity)capacity;
692 + (instancetype)stringWithHexadecimalInteger:(SCULong)integer;
693 + (instancetype)stringWithBool:(BOOL)boolean;
694 + (instancetype)stringWithFloat:(SCFloat)value;
695 + (instancetype)stringWithDouble:(SCDouble)value;
696 
697 - (instancetype)initWithBinaryInteger:(SCULong)integer capacity:(SCCapacity)capacity;
698 - (instancetype)initWithBinaryInteger:(SCULong)integer;
699 - (instancetype)initWithOctalInteger:(SCULong)integer;
700 - (instancetype)initWithDecimalInteger:(SCLong)integer separators:(BOOL)separators;
701 - (instancetype)initWithDecimalInteger:(SCLong)integer;
702 - (instancetype)initWithInteger:(SCLong)integer;
703 - (instancetype)initWithHexadecimalInteger:(SCULong)integer capacity:(SCCapacity)capacity;
704 - (instancetype)initWithHexadecimalInteger:(SCULong)integer;
705 - (instancetype)initWithBool:(BOOL)boolean;
706 - (instancetype)initWithFloat:(SCFloat)value;
707 - (instancetype)initWithDouble:(SCDouble)value;
708 
709 #pragma mark -
710 #pragma mark Reversing Strings
711 + (instancetype)stringWithReversedString:(NSString *)string;
712 - (instancetype)initWithReversedString:(NSString *)string;
713 
714 #pragma mark -
715 #pragma mark Special Overrided Methods
716 - (instancetype)initWithContentsOfFile:(NSString *)path;
717 - (instancetype)initWithContentsOfURL:(NSURL *)url;
718 
719 @end
NSString * stringWithUpperFirstLetter
Definition: NSString+SCString.h:566
BOOL isDecimalString
Definition: NSString+SCString.h:480
uint64_t SCULong
Definition: SCTypes.h:94
NSString * rtrim()
Definition: NSString+SCString.m:793
NSString * firstWord
Definition: NSString+SCString.h:437
BOOL isDoubleString
Definition: NSString+SCString.h:504
int64_t SCLong
Definition: SCTypes.h:176
NSString * trimmedString
Definition: NSString+SCString.h:412
SCULong hexadecimalValue
Definition: NSString+SCString.h:528
SCULong octalValue
Definition: NSString+SCString.h:516
uint32_t SCUInteger
Definition: SCTypes.h:73
SCULong binaryValue
Definition: NSString+SCString.h:510
NSString * lastWord
Definition: NSString+SCString.h:443
Class NSString extentions category.
Definition: NSString+SCString.h:395
SCCapacity
Definition: SCTypes.h:570
BOOL isHexadecimalString
Definition: NSString+SCString.h:486
SCULong decimalValue
Definition: NSString+SCString.h:522
SCIndex wordsCount
Definition: NSString+SCString.h:431
BOOL isFloatString
Definition: NSString+SCString.h:498
BOOL empty
Definition: NSString+SCString.h:560
NSString * normalizedString
Definition: NSString+SCString.h:425
NSString * endOfString
Definition: NSString+SCString.h:449
NSString * ltrim()
Definition: NSString+SCString.m:766
Library types header file.
double SCDouble
Definition: SCTypes.h:131
Collection types protocols header file.
NSString * reversedString
Definition: NSString+SCString.h:547
NSString * trim()
Definition: NSString+SCString.m:816
BOOL booleanValue
Definition: NSString+SCString.h:534
BOOL isBooleanString
Definition: NSString+SCString.h:492
float SCFloat
Definition: SCTypes.h:143
BOOL isOctalString
Definition: NSString+SCString.h:474
Category NSObject(SCObject) header file.
BOOL isBinaryString
Definition: NSString+SCString.h:468
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:53
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:224