Samond Classes Library 1.2.0-RELEASE build 166
SCString.h
Go to the documentation of this file.
1 //
2 // 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 
23 #import <Foundation/Foundation.h>
24 #import <scl/SCTypes.h>
25 #import <scl/SCCoding.h>
26 #import <scl/SCDictionaring.h>
27 #import <scl/SCStreaming.h>
28 #import <scl/SCCollectioning.h>
29 #import <scl/SCArray.h>
30 
31 #pragma mark -
32 #pragma mark Логические константы
33 
42 #define SC_BOOL_YES @"YES"
43 
48 #define SC_BOOL_NO @"NO"
49 
54 #define SC_BOOL_TRUE @"TRUE"
55 
60 #define SC_BOOL_FALSE @"FALSE"
61 
66 #define SC_BOOL_ON @"ON"
67 
72 #define SC_BOOL_OFF @"OFF"
73 
78 #define SC_BOOL_RU_YES @"ДА"
79 
84 #define SC_BOOL_RU_NO @"НЕТ"
85 
90 #define SC_BOOL_RU_TRUE @"ИСТИНА"
91 
96 #define SC_BOOL_RU_FALSE @"ЛОЖЬ"
97 
102 #define SC_BOOL_RU_ON @"ВКЛ"
103 
108 #define SC_BOOL_RU_OFF @"ВЫКЛ"
109 
110 #pragma mark -
111 #pragma mark Строковые константы
112 
121 #define SC_STR_EMPTY @""
122 
127 #define SC_STR_SPACE @" "
128 
129 #pragma mark Константы строковых символов
130 
139 #define SC_STR_ZERO @"0"
140 
145 #define SC_STR_ONE @"1"
146 
151 #define SC_STR_TWO @"2"
152 
157 #define SC_STR_THREE @"3"
158 
163 #define SC_STR_FOUR @"4"
164 
169 #define SC_STR_FIVE @"5"
170 
175 #define SC_STR_SIX @"6"
176 
181 #define SC_STR_SEVEN @"7"
182 
187 #define SC_STR_EIGHT @"8"
188 
193 #define SC_STR_NINE @"9"
194 
195 #pragma mark -
196 #pragma mark Символьные константы
197 
206 #define SC_CHR_SPACE ' '
207 
212 #define SC_CHR_TAB '\t'
213 
214 #pragma mark Константы цифровых символов
215 
224 #define SC_CHR_ZERO '0'
225 
230 #define SC_CHR_ONE '1'
231 
236 #define SC_CHR_TWO '2'
237 
242 #define SC_CHR_THREE '3'
243 
248 #define SC_CHR_FOUR '4'
249 
254 #define SC_CHR_FIVE '5'
255 
260 #define SC_CHR_SIX '6'
261 
266 #define SC_CHR_SEVEN '7'
267 
272 #define SC_CHR_EIGHT '8'
273 
278 #define SC_CHR_NINE '9'
279 
284 #define SC_CHR_DOT '.'
285 
290 #define SC_CHR_COMMA ','
291 
296 #define SC_CHR_PLUS '+'
297 
302 #define SC_CHR_MINUS '-'
303 
304 #pragma mark -
305 #pragma mark Константы различных форматов
306 
315 #define SC_FMT_OCTAL @"%qo"
316 
321 #define SC_FMT_UDECIMAL @"%qu"
322 
327 #define SC_FMT_SDECIMAL @"%qd"
328 
333 #define SC_FMT_HEX @"%qX"
334 
339 #define SC_FMT_FLOAT @"%f"
340 
345 #define SC_FMT_DOUBLE @"%f"
346 
351 #define SC_FMT_POINTER @"%p"
352 
357 #define SC_FMT_OBJECT @"%@"
358 
359 #pragma mark -
360 #pragma mark Константы класса
361 
370 #define NSStringClass @"NSString"
371 
372 #pragma mark -
373 
389 
415 @property (nonatomic, retain, readonly, getter=normalizedString) NSString *normalizedString;
416 
421 @property (nonatomic, assign, readonly, getter=wordsCount) SCUInteger wordsCount;
422 
427 @property (nonatomic, retain, readonly, getter=firstWord) NSString *firstWord;
428 
433 @property (nonatomic, retain, readonly, getter=lastWord) NSString *lastWord;
434 
439 @property (nonatomic, retain, readonly, getter=endOfString) NSString *endOfString;
440 
458 @property (nonatomic, assign, readonly, getter=binaryValue) SCULong binaryValue;
459 
464 @property (nonatomic, assign, readonly, getter=octalValue) SCULong octalValue;
465 
470 @property (nonatomic, assign, readonly, getter=decimalValue) SCULong decimalValue;
471 
476 @property (nonatomic, assign, readonly, getter=hexadecimalValue) SCULong hexadecimalValue;
477 
482 @property (nonatomic, assign, readonly, getter=booleanValue) BOOL booleanValue;
483 
495 @property (nonatomic, retain, readonly, getter=reversedString) NSString *reversedString;
496 
508 @property (nonatomic, assign, readonly, getter=empty) BOOL empty;
509 
512 #pragma mark -
513 #pragma mark Создание строк
514 + (NSString *)stringWithIndexSet:(NSIndexSet *)indexSet;
515 + (NSString *)stringWithCharacter:(unichar)character;
516 + (NSString *)stringWithCharacter:(unichar)character length:(SCUInteger)length;
517 + (NSString *)stringWithLength:(SCUInteger)length;
518 + (NSString *)stringWithPointer:(void *)pointer;
519 + (NSString *)stringWithID:(id)object;
520 
521 #pragma mark -
522 #pragma mark Инициализация строк
523 - (id)initWithIndexSet:(NSIndexSet *)indexSet;
524 - (id)initWithCharacter:(unichar)character;
525 - (id)initWithCharacter:(unichar)character length:(SCUInteger)length;
526 - (id)initWithLength:(SCUInteger)length;
527 - (id)initWithPointer:(void *)pointer;
528 - (id)initWithID:(id)object;
529 
530 #pragma mark -
531 #pragma mark Поддержка последовательных файлов
532 + (NSString *)stringWithCoder:(NSCoder *)coder;
533 + (NSString *)stringWithContentsOfSerializedFile:(NSString *)path;
534 - (id)initWithContentsOfSerializedFile:(NSString *)path;
535 - (BOOL)writeContentsToSerializedFile:(NSString *)path;
536 
537 #pragma mark -
538 #pragma mark Поддержка словарей
539 + (NSString *)stringWithDataDictionary:(NSDictionary *)dictionary;
540 + (NSString *)stringWithDataDictionaryFromFile:(NSString *)path;
541 - (id)initWithDataDictionary:(NSDictionary *)dictionary;
542 - (id)initWithDataDictionaryFromFile:(NSString *)path;
543 - (void)writeToDataDictionary:(NSMutableDictionary *)dictionary;
544 - (void)writeToDataDictionaryFile:(NSString *)path atomically:(BOOL)atomically;
545 - (void)writeToDataDictionaryFile:(NSString *)path;
546 - (NSDictionary *)dataDictionary;
547 
548 #pragma mark -
549 #pragma mark Поддержка потоков
550 + (NSString *)stringWithStream:(SCStream *)stream;
551 + (NSString *)stringWithFileStream:(NSString *)path;
552 - (id)initWithStream:(SCStream *)stream;
553 - (id)initWithFileStream:(NSString *)path;
554 - (void)writeToStream:(SCStream *)stream;
555 - (void)writeToFileStream:(NSString *)path;
556 - (void)appendToFileStream:(NSString *)path;
557 
558 #pragma mark -
559 #pragma mark Поддержка коллекций
561 - (SCComparisonResult)compareWithObject:(id<SCCollectioning>)object;
562 
563 #pragma mark -
564 #pragma mark Разделение и замена строк и подстрок
565 - (NSString *)ltrim;
566 - (NSString *)rtrim;
567 - (NSString *)trim;
568 
569 - (NSString *)stringWithLeftCharacters:(SCUInteger)characters;
570 - (NSString *)stringWithRightCharacters:(SCUInteger)characters;
571 - (NSString *)skipLeftPart:(SCUInteger)characters;
572 - (NSString *)skipRightPart:(SCUInteger)characters;
573 
574 - (BOOL)isCorrectRange:(NSRange)range;
575 - (BOOL)existsSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
576 - (BOOL)existsSubstring:(NSString *)substring;
577 - (SCUInteger)countOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
578 - (SCUInteger)countOfSubstring:(NSString *)substring;
579 
580 - (NSString *)stringWithDeletedSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
581 - (NSString *)stringWithDeletedSubstring:(NSString *)substring;
582 - (NSString *)stringWithDeletedSubstringToIndex:(SCUInteger)index;
583 - (NSString *)stringWithDeletedSubstringToRange:(NSRange)range;
584 - (NSString *)stringWithDeletedSubstringFromIndex:(SCUInteger)index;
585 - (NSString *)stringWithDeletedSubstringWithRange:(NSRange)range;
586 
587 - (SCUInteger)indexOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
588 - (SCUInteger)indexOfSubstring:(NSString *)substring;
589 - (SCArray *)indexesOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
590 - (SCArray *)indexesOfSubstring:(NSString *)substring;
591 
592 - (NSString *)stringWithReplacedSubstringToIndex:(SCUInteger)index withString:(NSString *)string;
593 - (NSString *)stringWithReplacedSubstringFromIndex:(SCUInteger)index withString:(NSString *)string;
594 - (NSString *)stringWithReplacedSubstringWithRange:(NSRange)range withString:(NSString *)string;
595 - (NSString *)stringWithReplacedSubstring:(NSString *)substring
596  withString:(NSString *)string
597  caseInsensitive:(BOOL)caseInsensitive;
598 - (NSString *)stringWithReplacedSubstring:(NSString *)substring withString:(NSString *)string;
599 
600 - (NSString *)stringWithInsertedString:(NSString *)string;
601 - (NSString *)stringWithInsertedString:(NSString *)string index:(SCUInteger)index;
602 
603 #pragma mark -
604 #pragma mark Работа со словами в составе строк
605 - (NSString *)normalizedString;
607 - (NSString *)word:(SCUInteger)word;
608 - (NSString *)firstWord;
609 - (NSString *)lastWord;
610 - (NSString *)endOfString;
611 
612 #pragma mark -
613 #pragma mark Сравнение строк
614 - (BOOL)isEqualToStrings:(NSString *)string, ... NS_REQUIRES_NIL_TERMINATION;
615 
616 #pragma mark -
617 #pragma mark Расширение строк
618 - (NSString *)leftExpandedStringToLength:(SCUInteger)length character:(unichar)character;
619 - (NSString *)leftExpandedStringToLength:(SCUInteger)length;
620 - (NSString *)leftZeroExpandedStringToLength:(SCUInteger)length;
621 - (NSString *)rightExpandedStringToLength:(SCUInteger)length character:(unichar)character;
622 - (NSString *)rightExpandedStringToLength:(SCUInteger)length;
623 
624 + (NSString *)stringWithLeftExpandedString:(NSString *)string length:(SCUInteger)length character:(unichar)character;
625 + (NSString *)stringWithLeftExpandedString:(NSString *)string length:(SCUInteger)length;
626 + (NSString *)stringWithLeftZeroExpandedString:(NSString *)string length:(SCUInteger)length;
627 + (NSString *)stringWithRightExpandedString:(NSString *)string length:(SCUInteger)length character:(unichar)character;
628 + (NSString *)stringWithRightExpandedString:(NSString *)string length:(SCUInteger)length;
629 
630 - (id)initWithLeftExpandedString:(NSString *)string length:(SCUInteger)length character:(unichar)character;
631 - (id)initWithLeftExpandedString:(NSString *)string length:(SCUInteger)length;
632 - (id)initWithLeftZeroExpandedString:(NSString *)string length:(SCUInteger)length;
633 - (id)initWithRightExpandedString:(NSString *)string length:(SCUInteger)length character:(unichar)character;
634 - (id)initWithRightExpandedString:(NSString *)string length:(SCUInteger)length;
635 
636 #pragma mark -
637 #pragma mark Добавление разделителей групп символов
638 - (NSString *)stringWithSeparator:(NSString *)separator left:(SCUInteger)left;
639 - (NSString *)stringWithSpacesLeft:(SCUInteger)left;
640 - (NSString *)stringWithSeparator:(NSString *)separator right:(SCUInteger)right;
641 - (NSString *)stringWithSpacesRight:(SCUInteger)right;
642 
643 + (NSString *)stringWithString:(NSString *)string separator:(NSString *)separator left:(SCUInteger)left;
644 + (NSString *)stringWithString:(NSString *)string spacesLeft:(SCUInteger)left;
645 + (NSString *)stringWithString:(NSString *)string separator:(NSString *)separator right:(SCUInteger)right;
646 + (NSString *)stringWithString:(NSString *)string spacesRight:(SCUInteger)right;
647 
648 - (id)initWithString:(NSString *)string separator:(NSString *)separator left:(SCUInteger)left;
649 - (id)initWithString:(NSString *)string spacesLeft:(SCUInteger)left;
650 - (id)initWithString:(NSString *)string separator:(NSString *)separator right:(SCUInteger)right;
651 - (id)initWithString:(NSString *)string spacesRight:(SCUInteger)right;
652 
653 #pragma mark -
654 #pragma mark Работа с текстовыми представлениями различных типов
655 - (BOOL)isBinaryString;
656 - (BOOL)isOctalString;
657 - (BOOL)isDecimalString;
658 - (BOOL)isHexadecimalString;
659 - (BOOL)isBooleanString;
660 - (BOOL)isFloatString;
661 - (BOOL)isDoubleString;
662 
667 - (BOOL)booleanValue;
668 
669 + (NSString *)stringWithBinaryInteger:(SCULong)integer capacity:(SCCapacity)capacity;
670 + (NSString *)stringWithBinaryInteger:(SCULong)integer;
671 + (NSString *)stringWithOctalInteger:(SCULong)integer;
672 + (NSString *)stringWithDecimalInteger:(SCLong)integer separators:(BOOL)separators;
673 + (NSString *)stringWithDecimalInteger:(SCLong)integer;
674 + (NSString *)stringWithInteger:(SCLong)integer;
675 + (NSString *)stringWithHexadecimalInteger:(SCULong)integer capacity:(SCCapacity)capacity;
676 + (NSString *)stringWithHexadecimalInteger:(SCULong)integer;
677 + (NSString *)stringWithBool:(BOOL)boolean;
678 + (NSString *)stringWithFloat:(SCFloat)value;
679 + (NSString *)stringWithDouble:(SCDouble)value;
680 
681 - (id)initWithBinaryInteger:(SCULong)integer capacity:(SCCapacity)capacity;
682 - (id)initWithBinaryInteger:(SCULong)integer;
683 - (id)initWithOctalInteger:(SCULong)integer;
684 - (id)initWithDecimalInteger:(SCLong)integer separators:(BOOL)separators;
685 - (id)initWithDecimalInteger:(SCLong)integer;
686 - (id)initWithInteger:(SCLong)integer;
687 - (id)initWithHexadecimalInteger:(SCULong)integer capacity:(SCCapacity)capacity;
688 - (id)initWithHexadecimalInteger:(SCULong)integer;
689 - (id)initWithBool:(BOOL)boolean;
690 - (id)initWithFloat:(SCFloat)value;
691 - (id)initWithDouble:(SCDouble)value;
692 
693 #pragma mark -
694 #pragma mark Переворачивание строк
695 - (NSString *)reversedString;
696 + (NSString *)stringWithReversedString:(NSString *)string;
697 - (id)initWithReversedString:(NSString *)string;
698 
699 #pragma mark -
700 #pragma mark Другие методы
701 - (BOOL)empty;
702 - (NSString *)stringWithUpperFirstLetter;
703 
704 @end
uint64_t SCULong
Definition: SCTypes.h:78
BOOL isHexadecimalString()
Definition: SCString.m:2216
NSString * rtrim()
Definition: SCString.m:907
NSString * firstWord
Definition: SCString.h:427
int64_t SCLong
Definition: SCTypes.h:54
BOOL isFloatString()
Definition: SCString.m:2249
SCULong hexadecimalValue
Definition: SCString.h:476
BOOL isDoubleString()
Definition: SCString.m:2281
SCULong octalValue
Definition: SCString.h:464
uint32_t SCUInteger
Definition: SCTypes.h:72
SCULong binaryValue
Definition: SCString.h:458
NSString * lastWord
Definition: SCString.h:433
Class NSString extentions category.
Definition: SCString.h:388
Standard protocol NSCoding extention protocol.
Definition: SCCoding.h:40
enum _SCCapacity SCCapacity
Integer capacity data type.
Definition: SCTypes.h:293
SCULong decimalValue
Definition: SCString.h:470
enum _SCComparisonResult SCComparisonResult
Instances comparing results type.
Definition: SCCollectioning.h:60
BOOL isOctalString()
Definition: SCString.m:2191
BOOL empty
Definition: SCString.h:508
NSString * normalizedString
Definition: SCString.h:415
Protocol of methods for data exchanging between class instances and classes NSDictionary and NSMutabl...
Definition: SCDictionaring.h:42
NSString * endOfString
Definition: SCString.h:439
NSString * ltrim()
Definition: SCString.m:872
float_t SCFloat
Definition: SCTypes.h:84
NSDictionary * dataDictionary()
Definition: SCString.m:618
id< SCCollectioning > copyObject()
Definition: SCString.m:812
NSString * reversedString
Definition: SCString.h:495
SCUInteger wordsCount
Definition: SCString.h:421
Collections communications protocol.
Definition: SCCollectioning.h:78
NSString * trim()
Definition: SCString.m:939
BOOL isBooleanString()
Definition: SCString.m:2228
Streams communications protocol.
Definition: SCStreaming.h:40
BOOL isBinaryString()
Definition: SCString.m:2179
BOOL booleanValue
Definition: SCString.h:482
BOOL isDecimalString()
Definition: SCString.m:2203
Array class.
Definition: SCArray.h:77
NSString * stringWithUpperFirstLetter()
Definition: SCString.m:2851
double_t SCDouble
Definition: SCTypes.h:90
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:242