20 #ifndef __STDC_LIMIT_MACROS 21 # define __STDC_LIMIT_MACROS 23 #ifndef __STDC_CONSTANT_MACROS 24 # define __STDC_CONSTANT_MACROS 27 #include "objfw-defs.h" 29 #ifdef OF_HAVE_SYS_TYPES_H 30 # include <sys/types.h> 35 #ifdef OF_HAVE_INTTYPES_H 36 # include <inttypes.h> 40 #import "OFJSONRepresentation.h" 41 #import "OFMessagePackRepresentation.h" 43 OF_ASSUME_NONNULL_BEGIN
47 @class OFArray OF_GENERIC(ObjectType);
53 #if defined(__cplusplus) && __cplusplus >= 201103L 54 typedef char16_t OFChar16;
55 typedef char32_t OFChar32;
57 typedef uint_least16_t OFChar16;
58 typedef uint_least32_t OFChar32;
60 typedef OFChar32 OFUnichar;
126 #ifdef OF_HAVE_BLOCKS 147 @property (readonly, nonatomic)
size_t length;
156 @property (readonly, nonatomic)
const char *
UTF8String OF_RETURNS_INNER_POINTER;
317 @property (readonly, nonatomic)
const OFUnichar *
characters 318 OF_RETURNS_INNER_POINTER;
329 @property (readonly, nonatomic)
const OFChar16 *
UTF16String 330 OF_RETURNS_INNER_POINTER;
346 @property (readonly, nonatomic)
const OFChar32 *
UTF32String 347 OF_RETURNS_INNER_POINTER;
370 #if defined(OF_WINDOWS) || defined(DOXYGEN) 374 @property (readonly, nonatomic)
392 + (instancetype)stringWithUTF8String: (const
char *)UTF8String;
403 + (instancetype)stringWithUTF8String: (const
char *)UTF8String
404 length: (
size_t)UTF8StringLength;
421 + (instancetype)stringWithUTF8StringNoCopy: (
char *)UTF8String
422 freeWhenDone: (
bool)freeWhenDone;
440 + (instancetype)stringWithUTF8StringNoCopy: (
char *)UTF8String
441 length: (
size_t)UTF8StringLength
442 freeWhenDone: (
bool)freeWhenDone;
452 + (instancetype)stringWithCString: (const
char *)cString
465 + (instancetype)stringWithCString: (const
char *)cString
467 length: (
size_t)cStringLength;
477 + (instancetype)stringWithData: (
OFData *)data
486 + (instancetype)stringWithString: (
OFString *)string;
496 + (instancetype)stringWithCharacters: (const OFUnichar *)characters
497 length: (
size_t)length;
506 + (instancetype)stringWithUTF16String: (const OFChar16 *)string;
517 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
518 length: (
size_t)length;
529 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
543 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
544 length: (
size_t)length
553 + (instancetype)stringWithUTF32String: (const OFChar32 *)string;
563 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
564 length: (
size_t)length;
574 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
587 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
588 length: (
size_t)length
615 + (instancetype)stringWithContentsOfFile: (
OFString *)path;
626 + (instancetype)stringWithContentsOfFile: (
OFString *)path
643 + (instancetype)stringWithContentsOfIRI: (
OFIRI *)IRI;
654 + (instancetype)stringWithContentsOfIRI: (
OFIRI *)IRI
662 - (instancetype)
init OF_DESIGNATED_INITIALIZER;
672 - (instancetype)initWithUTF8String: (const
char *)UTF8String;
683 - (instancetype)initWithUTF8String: (const
char *)UTF8String
684 length: (
size_t)UTF8StringLength;
701 - (instancetype)initWithUTF8StringNoCopy: (
char *)UTF8String
702 freeWhenDone: (
bool)freeWhenDone;
721 - (instancetype)initWithUTF8StringNoCopy: (
char *)UTF8String
722 length: (
size_t)UTF8StringLength
723 freeWhenDone: (
bool)freeWhenDone;
734 - (instancetype)initWithCString: (const
char *)cString
747 - (instancetype)initWithCString: (const
char *)cString
749 length: (
size_t)cStringLength;
760 - (instancetype)initWithData: (
OFData *)data
769 - (instancetype)initWithString: (
OFString *)string;
779 - (instancetype)initWithCharacters: (const OFUnichar *)characters
780 length: (
size_t)length;
789 - (instancetype)initWithUTF16String: (const OFChar16 *)string;
800 - (instancetype)initWithUTF16String: (const OFChar16 *)string
801 length: (
size_t)length;
812 - (instancetype)initWithUTF16String: (const OFChar16 *)string
826 - (instancetype)initWithUTF16String: (const OFChar16 *)string
827 length: (
size_t)length
836 - (instancetype)initWithUTF32String: (const OFChar32 *)string;
846 - (instancetype)initWithUTF32String: (const OFChar32 *)string
847 length: (
size_t)length;
857 - (instancetype)initWithUTF32String: (const OFChar32 *)string
870 - (instancetype)initWithUTF32String: (const OFChar32 *)string
871 length: (
size_t)length
904 arguments: (va_list)arguments;
915 - (instancetype)initWithContentsOfFile: (
OFString *)path;
926 - (instancetype)initWithContentsOfFile: (
OFString *)path
944 - (instancetype)initWithContentsOfIRI: (
OFIRI *)IRI;
955 - (instancetype)initWithContentsOfIRI: (
OFIRI *)IRI
971 - (size_t)getCString: (
char *)cString
972 maxLength: (
size_t)maxLength
987 - (size_t)getLossyCString: (
char *)cString
988 maxLength: (
size_t)maxLength
1004 OF_RETURNS_INNER_POINTER;
1019 OF_RETURNS_INNER_POINTER;
1033 OF_RETURNS_INNER_POINTER;
1068 - (OFUnichar)characterAtIndex: (
size_t)index;
1077 - (void)getCharacters: (OFUnichar *)buffer inRange: (
OFRange)range;
1152 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet
1153 OF_DEPRECATED(ObjFW, 1, 3, "Use -[rangeOfCharacterFromSet:] instead");
1163 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet
1165 OF_DEPRECATED(ObjFW, 1, 3,
1166 "Use -[rangeOfCharacterFromSet:options:] instead");
1177 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet
1180 OF_DEPRECATED(ObjFW, 1, 3,
1181 "Use -[rangeOfCharacterFromSet:options:range:] instead");
1189 - (bool)containsString: (
OFString *)string;
1197 - (
OFString *)substringFromIndex: (
size_t)idx;
1205 - (
OFString *)substringToIndex: (
size_t)idx;
1229 - (
signed char)charValueWithBase: (
unsigned char)base;
1245 - (short)shortValueWithBase: (
unsigned char)base;
1261 - (int)intValueWithBase: (
unsigned char)base;
1277 - (long)longValueWithBase: (
unsigned char)base;
1293 - (
long long)longLongValueWithBase: (
unsigned char)base;
1309 - (
unsigned char)unsignedCharValueWithBase: (
unsigned char)base;
1325 - (
unsigned short)unsignedShortValueWithBase: (
unsigned char)base;
1341 - (
unsigned int)unsignedIntValueWithBase: (
unsigned char)base;
1357 - (
unsigned long)unsignedLongValueWithBase: (
unsigned char)base;
1374 - (
unsigned long long)unsignedLongLongValueWithBase: (
unsigned char)base;
1406 arguments: (va_list)arguments;
1417 withString: (
OFString *)replacement;
1432 withString: (
OFString *)replacement
1433 options: (
int)options
1442 - (bool)hasPrefix: (
OFString *)prefix;
1450 - (bool)hasSuffix: (
OFString *)suffix;
1460 componentsSeparatedByString: (
OFString *)delimiter;
1471 componentsSeparatedByString: (
OFString *)delimiter
1482 componentsSeparatedByCharactersInSet: (
OFCharacterSet *)characterSet;
1493 componentsSeparatedByCharactersInSet: (
OFCharacterSet *)characterSet
1509 - (const OFChar16 *)UTF16StringWithByteOrder: (
OFByteOrder)byteOrder;
1523 - (const OFChar32 *)UTF32StringWithByteOrder: (
OFByteOrder)byteOrder;
1535 #ifdef OF_HAVE_FILES 1541 - (void)writeToFile: (
OFString *)path;
1560 - (void)writeToIRI: (
OFIRI *)IRI;
1572 #ifdef OF_HAVE_BLOCKS 1624 OF_ASSUME_NONNULL_END
1626 #import "OFConstantString.h" 1627 #import "OFMutableString.h" 1628 #import "OFString+CryptographicHashing.h" 1629 #import "OFString+JSONParsing.h" 1630 #ifdef OF_HAVE_FILES 1631 # import "OFString+PathAdditions.h" 1633 #import "OFString+PercentEncoding.h" 1634 #import "OFString+PropertyListParsing.h" 1635 #import "OFString+XMLEscaping.h" 1638 #if !defined(NSINTEGER_DEFINED) && !__has_feature(objc_modules) OFStringSeparationOptions
Options for separating strings.
Definition: OFString.h:121
Definition: OFString.h:103
An abstract class for storing objects in an array.
Definition: OFArray.h:108
signed char charValue
The decimal value of the string as a char.
Definition: OFString.h:191
instancetype init()
Initializes an already allocated OFString to be empty.
Definition: OFString.m:927
A protocol for comparing objects.
Definition: OFObject.h:1656
OFStringEncoding
The encoding of a string.
Definition: OFString.h:65
Definition: OFString.h:81
OFString * stringByExpandingWindowsEnvironmentStrings
The string with the Windows Environment Strings expanded.
Definition: OFString.h:375
OFString * capitalizedString
The string in capitalized form.
Definition: OFString.h:180
OFString * stringByDeletingEnclosingWhitespaces
The string with leading and trailing whitespaces deleted.
Definition: OFString.h:362
unsigned int unsignedIntValue
The decimal value of the string as an unsigned int.
Definition: OFString.h:268
size_t OFUTF32StringLength(const OFChar32 *string)
Returns the length of the specified UTF-32 string.
Definition: OFString.m:369
int intValue
The decimal value of the string as an int.
Definition: OFString.h:213
Definition: OFString.h:89
A class for storing constant strings using the @"" literal.
Definition: OFConstantString.h:41
The root class for all other classes inside ObjFW.
Definition: OFObject.h:954
OFString * uppercaseString
The string in uppercase.
Definition: OFString.h:166
Definition: OFString.h:93
A class cluster representing a character set.
Definition: OFCharacterSet.h:32
unsigned char unsignedCharValue
The decimal value of the string as an unsigned char.
Definition: OFString.h:246
OFStringEncoding OFStringEncodingParseName(OFString *name)
Parses the specified string encoding name and returns the OFStringEncoding for it.
Definition: OFString.m:177
OFString * stringByDeletingTrailingWhitespaces
The string with trailing whitespaces deleted.
Definition: OFString.h:357
unsigned long unsignedLongValue
The decimal value of the string as an unsigned long.
Definition: OFString.h:279
Definition: OFString.h:123
Definition: OFString.h:113
const OFUnichar * characters
The string as an array of Unicode characters.
Definition: OFString.h:318
A protocol implemented by classes that support encoding to a JSON representation. ...
Definition: OFJSONRepresentation.h:49
A class for handling strings.
Definition: OFString.h:142
Definition: OFString.h:87
const OFChar32 * UTF32String
The string in UTF-32 encoding with native byte order.
Definition: OFString.h:347
OFString * lowercaseString
The string in lowercase.
Definition: OFString.h:171
size_t OFUTF16StringLength(const OFChar16 *string)
Returns the length of the specified UTF-16 string.
Definition: OFString.m:358
OFComparisonResult
A result of a comparison.
Definition: OFObject.h:64
Definition: OFString.h:79
const OFChar16 * UTF16String
The string in UTF-16 encoding with native byte order.
Definition: OFString.h:330
Definition: OFString.h:71
Definition: OFString.h:101
OFByteOrder
An enum for representing endianness.
Definition: OFObject.h:98
Definition: OFString.h:77
Definition: OFString.h:99
size_t UTF16StringLength
The length of the string in UTF-16 characters.
Definition: OFString.h:335
A protocol implemented by classes that support encoding to a MessagePack representation.
Definition: OFMessagePackRepresentation.h:33
OFString * stringByReplacingControlCharacters
The string with all control characters replaced with a description of the replaced control character...
Definition: OFString.h:368
OFString * stringByDeletingLeadingWhitespaces
The string with leading whitespaces deleted.
Definition: OFString.h:352
size_t UTF8StringLength
The number of bytes the string needs in UTF-8 encoding.
Definition: OFString.h:161
Definition: OFString.h:91
A class for representing IRIs, URIs, URLs and URNs, for parsing them as well as accessing parts of th...
Definition: OFIRI.h:39
long long longLongValue
The decimal value of the string as a long long.
Definition: OFString.h:235
Definition: OFString.h:97
A protocol for the creation of mutable copies.
Definition: OFObject.h:1639
A protocol for the creation of copies.
Definition: OFObject.h:1618
A class for storing arbitrary data in an array.
Definition: OFData.h:45
unsigned short unsignedShortValue
The decimal value of the string as an unsigned short.
Definition: OFString.h:257
size_t length
The length of the string in Unicode code points.
Definition: OFString.h:147
Definition: OFString.h:75
Definition: OFString.h:83
void(^ OFStringLineEnumerationBlock)(OFString *line, bool *stop)
A block for enumerating the lines of a string.
Definition: OFString.h:134
const char * UTF8String
The OFString as a UTF-8 encoded C string.
Definition: OFString.h:156
double doubleValue
The double value of the string as a double.
Definition: OFString.h:306
long longValue
The decimal value of the string as a long.
Definition: OFString.h:224
short shortValue
The decimal value of the string as a short.
Definition: OFString.h:202
float floatValue
The float value of the string as a float.
Definition: OFString.h:298
instancetype string()
Creates a new OFString.
Definition: OFString.m:744
unsigned long long unsignedLongLongValue
The decimal value of the string as an unsigned long long.
Definition: OFString.h:290
Definition: OFString.h:95
A range.
Definition: OFObject.h:116
Definition: OFString.h:85
Definition: OFString.h:73
OFStringSearchOptions
Options for searching in strings.
Definition: OFString.h:111
OFString * OFStringEncodingName(OFStringEncoding encoding)
Returns the name of the specified OFStringEncoding.
Definition: OFString.m:239