Samond Classes Library 1.2.3-RELEASE build 192
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 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
24 #import <Foundation/Foundation.h>
26 #import <scl/SCArray.h>
27 
28 #pragma mark -
29 #pragma mark Boolean Constants
30 
39 #define SC_BOOL_YES @"YES"
40 
45 #define SC_BOOL_NO @"NO"
46 
51 #define SC_BOOL_TRUE @"TRUE"
52 
57 #define SC_BOOL_FALSE @"FALSE"
58 
63 #define SC_BOOL_ON @"ON"
64 
69 #define SC_BOOL_OFF @"OFF"
70 
75 #define SC_BOOL_RU_YES @"ДА"
76 
81 #define SC_BOOL_RU_NO @"НЕТ"
82 
87 #define SC_BOOL_RU_TRUE @"ИСТИНА"
88 
93 #define SC_BOOL_RU_FALSE @"ЛОЖЬ"
94 
99 #define SC_BOOL_RU_ON @"ВКЛ"
100 
105 #define SC_BOOL_RU_OFF @"ВЫКЛ"
106 
107 #pragma mark -
108 #pragma mark String Constants
109 
118 #define SC_STR_EMPTY @""
119 
124 #define SC_STR_SPACE @" "
125 
130 #define SC_STR_TAB @"\t"
131 
132 #pragma mark Digital String Constants
133 
142 #define SC_STR_ZERO @"0"
143 
148 #define SC_STR_ONE @"1"
149 
154 #define SC_STR_TWO @"2"
155 
160 #define SC_STR_THREE @"3"
161 
166 #define SC_STR_FOUR @"4"
167 
172 #define SC_STR_FIVE @"5"
173 
178 #define SC_STR_SIX @"6"
179 
184 #define SC_STR_SEVEN @"7"
185 
190 #define SC_STR_EIGHT @"8"
191 
196 #define SC_STR_NINE @"9"
197 
198 #pragma mark -
199 #pragma mark Character Constants
200 
209 #define SC_CHR_SPACE ' '
210 
215 #define SC_CHR_TAB '\t'
216 
217 #pragma mark Digital Character Constants
218 
227 #define SC_CHR_ZERO '0'
228 
233 #define SC_CHR_ONE '1'
234 
239 #define SC_CHR_TWO '2'
240 
245 #define SC_CHR_THREE '3'
246 
251 #define SC_CHR_FOUR '4'
252 
257 #define SC_CHR_FIVE '5'
258 
263 #define SC_CHR_SIX '6'
264 
269 #define SC_CHR_SEVEN '7'
270 
275 #define SC_CHR_EIGHT '8'
276 
281 #define SC_CHR_NINE '9'
282 
287 #define SC_CHR_DOT '.'
288 
293 #define SC_CHR_COMMA ','
294 
299 #define SC_CHR_PLUS '+'
300 
305 #define SC_CHR_MINUS '-'
306 
307 #pragma mark -
308 #pragma mark Format Constants
309 
318 #define SC_FMT_OCTAL @"%qo"
319 
324 #define SC_FMT_UDECIMAL @"%qu"
325 
330 #define SC_FMT_SDECIMAL @"%qd"
331 
336 #define SC_FMT_HEX @"%qX"
337 
342 #define SC_FMT_FLOAT @"%f"
343 
348 #define SC_FMT_DOUBLE @"%f"
349 
354 #define SC_FMT_POINTER @"%p"
355 
360 #define SC_FMT_OBJECT @"%@"
361 
362 #pragma mark -
363 #pragma mark Class Constants
364 
373 #define NSStringClass @"NSString"
374 
375 
376 #pragma mark -
377 
394 
410 @property (nonatomic, readonly, assign) NSString *trimmedString;
411 
423 @property (nonatomic, readonly, assign) NSString *normalizedString;
424 
429 @property (nonatomic, readonly, assign) SCIndex wordsCount;
430 
435 @property (nonatomic, readonly, assign) NSString *firstWord;
436 
441 @property (nonatomic, readonly, assign) NSString *lastWord;
442 
447 @property (nonatomic, readonly, assign) NSString *endOfString;
448 
466 @property (nonatomic, readonly, assign) BOOL isBinaryString;
467 
472 @property (nonatomic, readonly, assign) BOOL isOctalString;
473 
478 @property (nonatomic, readonly, assign) BOOL isDecimalString;
479 
484 @property (nonatomic, readonly, assign) BOOL isHexadecimalString;
485 
490 @property (nonatomic, readonly, assign) BOOL isBooleanString;
491 
496 @property (nonatomic, readonly, assign) BOOL isFloatString;
497 
502 @property (nonatomic, readonly, assign) BOOL isDoubleString;
503 
508 @property (nonatomic, readonly, assign) SCULong binaryValue;
509 
514 @property (nonatomic, readonly, assign) SCULong octalValue;
515 
520 @property (nonatomic, readonly, assign) SCULong decimalValue;
521 
526 @property (nonatomic, readonly, assign) SCULong hexadecimalValue;
527 
532 @property (nonatomic, readonly, assign) BOOL booleanValue;
533 
545 @property (nonatomic, readonly, assign) NSString *reversedString;
546 
558 @property (nonatomic, readonly, assign) BOOL empty;
559 
564 @property (nonatomic, readonly, assign) NSString *stringWithUpperFirstLetter;
565 
568 #pragma mark -
569 #pragma mark Creating Strings
570 + (instancetype)stringWithCoder:(NSCoder *)coder;
571 + (instancetype)stringWithContentsOfSerializedFile:(NSString *)path;
572 + (instancetype)stringWithDataDictionary:(NSDictionary *)dictionary;
573 + (instancetype)stringWithDataDictionaryFromFile:(NSString *)path;
574 + (instancetype)stringWithStream:(SCStream *)stream;
575 + (instancetype)stringWithFileStream:(NSString *)path;
576 + (instancetype)stringWithData:(NSData *)data;
577 + (instancetype)stringWithContentsOfFile:(NSString *)path;
578 + (instancetype)stringWithContentsOfURL:(NSURL *)url;
579 + (instancetype)stringWithContentsOfURLString:(NSString *)urlString;
580 
581 + (instancetype)stringWithIndexSet:(NSIndexSet *)indexSet;
582 + (instancetype)stringWithCharacter:(unichar)character;
583 + (instancetype)stringWithCharacter:(unichar)character length:(SCIndex)length;
584 + (instancetype)stringWithLength:(SCUInteger)length;
585 + (instancetype)stringWithPointer:(void *)pointer;
586 + (instancetype)stringWithID:(id)object;
587 
588 #pragma mark -
589 #pragma mark Initializing Strings
590 - (instancetype)initWithIndexSet:(NSIndexSet *)indexSet;
591 - (instancetype)initWithCharacter:(unichar)character;
592 - (instancetype)initWithCharacter:(unichar)character length:(SCIndex)length;
593 - (instancetype)initWithLength:(SCUInteger)length;
594 - (instancetype)initWithPointer:(void *)pointer;
595 - (instancetype)initWithID:(id)object;
596 
597 #pragma mark -
598 #pragma mark Dividing Strings and Replacing Substrings
599 - (NSString *)ltrim;
600 - (NSString *)rtrim;
601 - (NSString *)trim;
602 - (NSString *)stringWithLeftCharacters:(SCIndex)characters;
603 - (NSString *)stringWithRightCharacters:(SCIndex)characters;
604 - (NSString *)skipLeftPart:(SCIndex)characters;
605 - (NSString *)skipRightPart:(SCIndex)characters;
606 
607 - (BOOL)isCorrectRange:(NSRange)range;
608 - (BOOL)existsSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
609 - (BOOL)existsSubstring:(NSString *)substring;
610 - (SCIndex)countOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
611 - (SCIndex)countOfSubstring:(NSString *)substring;
612 - (SCIndex)indexOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
613 - (SCIndex)indexOfSubstring:(NSString *)substring;
614 - (SCArray *)indexesOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
615 - (SCArray *)indexesOfSubstring:(NSString *)substring;
616 
617 - (NSString *)stringWithDeletedSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
618 - (NSString *)stringWithDeletedSubstring:(NSString *)substring;
619 - (NSString *)stringWithDeletedSubstringToIndex:(SCIndex)index;
620 - (NSString *)stringWithDeletedSubstringToRange:(NSRange)range;
621 - (NSString *)stringWithDeletedSubstringFromIndex:(SCIndex)index;
622 - (NSString *)stringWithDeletedSubstringWithRange:(NSRange)range;
623 
624 - (NSString *)stringWithReplacedSubstringToIndex:(SCUInteger)index withString:(NSString *)string;
625 - (NSString *)stringWithReplacedSubstringFromIndex:(SCUInteger)index withString:(NSString *)string;
626 - (NSString *)stringWithReplacedSubstringWithRange:(NSRange)range withString:(NSString *)string;
627 - (NSString *)stringWithReplacedSubstring:(NSString *)substring
628  withString:(NSString *)string
629  caseInsensitive:(BOOL)caseInsensitive;
630 - (NSString *)stringWithReplacedSubstring:(NSString *)substring withString:(NSString *)string;
631 
632 - (NSString *)stringWithInsertedString:(NSString *)string;
633 - (NSString *)stringWithInsertedString:(NSString *)string index:(SCUInteger)index;
634 
635 #pragma mark -
636 #pragma mark String Words
637 - (NSString *)word:(SCIndex)word;
638 
639 #pragma mark -
640 #pragma mark Comparing Strings
641 - (BOOL)isEqualToStrings:(NSString *)string, ... NS_REQUIRES_NIL_TERMINATION;
642 
643 #pragma mark -
644 #pragma mark РExpanding Strings
645 - (NSString *)leftExpandedStringToLength:(SCIndex)length character:(unichar)character;
646 - (NSString *)leftExpandedStringToLength:(SCIndex)length;
647 - (NSString *)leftZeroExpandedStringToLength:(SCIndex)length;
648 - (NSString *)rightExpandedStringToLength:(SCIndex)length character:(unichar)character;
649 - (NSString *)rightExpandedStringToLength:(SCIndex)length;
650 
651 + (instancetype)stringWithLeftExpandedString:(NSString *)string length:(SCIndex)length character:(unichar)character;
652 + (instancetype)stringWithLeftExpandedString:(NSString *)string length:(SCIndex)length;
653 + (instancetype)stringWithLeftZeroExpandedString:(NSString *)string length:(SCIndex)length;
654 + (instancetype)stringWithRightExpandedString:(NSString *)string length:(SCIndex)length character:(unichar)character;
655 + (instancetype)stringWithRightExpandedString:(NSString *)string length:(SCIndex)length;
656 
657 - (instancetype)initWithLeftExpandedString:(NSString *)string length:(SCIndex)length character:(unichar)character;
658 - (instancetype)initWithLeftExpandedString:(NSString *)string length:(SCIndex)length;
659 - (instancetype)initWithLeftZeroExpandedString:(NSString *)string length:(SCIndex)length;
660 - (instancetype)initWithRightExpandedString:(NSString *)string length:(SCIndex)length character:(unichar)character;
661 - (instancetype)initWithRightExpandedString:(NSString *)string length:(SCIndex)length;
662 
663 #pragma mark -
664 #pragma mark Adding Delimiters
665 - (NSString *)stringWithSeparator:(NSString *)separator left:(SCIndex)left;
666 - (NSString *)stringWithSpacesLeft:(SCIndex)left;
667 - (NSString *)stringWithSeparator:(NSString *)separator right:(SCIndex)right;
668 - (NSString *)stringWithSpacesRight:(SCIndex)right;
669 
670 + (instancetype)stringWithString:(NSString *)string separator:(NSString *)separator left:(SCIndex)left;
671 + (instancetype)stringWithString:(NSString *)string spacesLeft:(SCIndex)left;
672 + (instancetype)stringWithString:(NSString *)string separator:(NSString *)separator right:(SCIndex)right;
673 + (instancetype)stringWithString:(NSString *)string spacesRight:(SCIndex)right;
674 
675 - (instancetype)initWithString:(NSString *)string separator:(NSString *)separator left:(SCIndex)left;
676 - (instancetype)initWithString:(NSString *)string spacesLeft:(SCIndex)left;
677 - (instancetype)initWithString:(NSString *)string separator:(NSString *)separator right:(SCIndex)right;
678 - (instancetype)initWithString:(NSString *)string spacesRight:(SCIndex)right;
679 
680 #pragma mark -
681 #pragma mark Data Types Representation
682 + (instancetype)stringWithBinaryInteger:(SCULong)integer capacity:(SCCapacity)capacity;
683 + (instancetype)stringWithBinaryInteger:(SCULong)integer;
684 + (instancetype)stringWithOctalInteger:(SCULong)integer;
685 + (instancetype)stringWithDecimalInteger:(SCLong)integer separators:(BOOL)separators;
686 + (instancetype)stringWithDecimalInteger:(SCLong)integer;
687 + (instancetype)stringWithInteger:(SCLong)integer;
688 + (instancetype)stringWithHexadecimalInteger:(SCULong)integer capacity:(SCCapacity)capacity;
689 + (instancetype)stringWithHexadecimalInteger:(SCULong)integer;
690 + (instancetype)stringWithBool:(BOOL)boolean;
691 + (instancetype)stringWithFloat:(SCFloat)value;
692 + (instancetype)stringWithDouble:(SCDouble)value;
693 
694 - (instancetype)initWithBinaryInteger:(SCULong)integer capacity:(SCCapacity)capacity;
695 - (instancetype)initWithBinaryInteger:(SCULong)integer;
696 - (instancetype)initWithOctalInteger:(SCULong)integer;
697 - (instancetype)initWithDecimalInteger:(SCLong)integer separators:(BOOL)separators;
698 - (instancetype)initWithDecimalInteger:(SCLong)integer;
699 - (instancetype)initWithInteger:(SCLong)integer;
700 - (instancetype)initWithHexadecimalInteger:(SCULong)integer capacity:(SCCapacity)capacity;
701 - (instancetype)initWithHexadecimalInteger:(SCULong)integer;
702 - (instancetype)initWithBool:(BOOL)boolean;
703 - (instancetype)initWithFloat:(SCFloat)value;
704 - (instancetype)initWithDouble:(SCDouble)value;
705 
706 #pragma mark -
707 #pragma mark Reversing Strings
708 + (instancetype)stringWithReversedString:(NSString *)string;
709 - (instancetype)initWithReversedString:(NSString *)string;
710 
711 #pragma mark -
712 #pragma mark Special Overrided Methods
713 - (instancetype)initWithContentsOfFile:(NSString *)path;
714 - (instancetype)initWithContentsOfURL:(NSURL *)url;
715 
716 @end
NSString * stringWithUpperFirstLetter
Definition: NSString+SCString.h:564
BOOL isDecimalString
Definition: NSString+SCString.h:478
uint64_t SCULong
Definition: SCTypes.h:82
NSString * rtrim()
Definition: NSString+SCString.m:744
NSString * firstWord
Definition: NSString+SCString.h:435
BOOL isDoubleString
Definition: NSString+SCString.h:502
int64_t SCLong
Definition: SCTypes.h:58
NSString * trimmedString
Definition: NSString+SCString.h:410
SCULong hexadecimalValue
Definition: NSString+SCString.h:526
SCULong octalValue
Definition: NSString+SCString.h:514
uint32_t SCUInteger
Definition: SCTypes.h:76
SCULong binaryValue
Definition: NSString+SCString.h:508
NSString * lastWord
Definition: NSString+SCString.h:441
Class NSString extentions category.
Definition: NSString+SCString.h:393
SCCapacity
Definition: SCTypes.h:222
BOOL isHexadecimalString
Definition: NSString+SCString.h:484
SCULong decimalValue
Definition: NSString+SCString.h:520
Class SCArray header file.
SCIndex wordsCount
Definition: NSString+SCString.h:429
BOOL isFloatString
Definition: NSString+SCString.h:496
BOOL empty
Definition: NSString+SCString.h:558
NSString * normalizedString
Definition: NSString+SCString.h:423
NSString * endOfString
Definition: NSString+SCString.h:447
NSString * ltrim()
Definition: NSString+SCString.m:714
double SCDouble
Definition: SCTypes.h:94
NSString * reversedString
Definition: NSString+SCString.h:545
NSString * trim()
Definition: NSString+SCString.m:769
BOOL booleanValue
Definition: NSString+SCString.h:532
BOOL isBooleanString
Definition: NSString+SCString.h:490
float SCFloat
Definition: SCTypes.h:88
BOOL isOctalString
Definition: NSString+SCString.h:472
Category NSObject(SCObject) header file.
BOOL isBinaryString
Definition: NSString+SCString.h:466
Array class.
Definition: SCArray.h:81
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:50
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:238