16 #ifndef __STDC_LIMIT_MACROS 17 # define __STDC_LIMIT_MACROS 19 #ifndef __STDC_CONSTANT_MACROS 20 # define __STDC_CONSTANT_MACROS 23 #include "objfw-defs.h" 25 #ifdef OF_HAVE_SYS_TYPES_H 26 # include <sys/types.h> 31 #ifdef OF_HAVE_INTTYPES_H 32 # include <inttypes.h> 36 #import "OFJSONRepresentation.h" 37 #import "OFMessagePackRepresentation.h" 39 OF_ASSUME_NONNULL_BEGIN
43 @class OFArray OF_GENERIC(ObjectType);
49 #if defined(__cplusplus) && __cplusplus >= 201103L 50 typedef char16_t OFChar16;
51 typedef char32_t OFChar32;
53 typedef uint_least16_t OFChar16;
54 typedef uint_least32_t OFChar32;
56 typedef OFChar32 OFUnichar;
118 #ifdef OF_HAVE_BLOCKS 139 @property (readonly, nonatomic)
size_t length;
269 #if defined(OF_WINDOWS) || defined(DOXYGEN) 273 @property (readonly, nonatomic)
291 + (instancetype)stringWithUTF8String: (const
char *)UTF8String;
302 + (instancetype)stringWithUTF8String: (const
char *)UTF8String
303 length: (
size_t)UTF8StringLength;
320 + (instancetype)stringWithUTF8StringNoCopy: (
char *)UTF8String
321 freeWhenDone: (
bool)freeWhenDone;
339 + (instancetype)stringWithUTF8StringNoCopy: (
char *)UTF8String
340 length: (
size_t)UTF8StringLength
341 freeWhenDone: (
bool)freeWhenDone;
351 + (instancetype)stringWithCString: (const
char *)cString
364 + (instancetype)stringWithCString: (const
char *)cString
366 length: (
size_t)cStringLength;
376 + (instancetype)stringWithData: (
OFData *)data
385 + (instancetype)stringWithString: (
OFString *)string;
395 + (instancetype)stringWithCharacters: (const OFUnichar *)characters
396 length: (
size_t)length;
405 + (instancetype)stringWithUTF16String: (const OFChar16 *)string;
416 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
417 length: (
size_t)length;
428 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
442 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
443 length: (
size_t)length
452 + (instancetype)stringWithUTF32String: (const OFChar32 *)string;
462 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
463 length: (
size_t)length;
473 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
486 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
487 length: (
size_t)length
514 + (instancetype)stringWithContentsOfFile: (
OFString *)path;
525 + (instancetype)stringWithContentsOfFile: (
OFString *)path
542 + (instancetype)stringWithContentsOfIRI: (
OFIRI *)IRI;
553 + (instancetype)stringWithContentsOfIRI: (
OFIRI *)IRI
561 - (instancetype)
init OF_DESIGNATED_INITIALIZER;
571 - (instancetype)initWithUTF8String: (const
char *)UTF8String;
582 - (instancetype)initWithUTF8String: (const
char *)UTF8String
583 length: (
size_t)UTF8StringLength;
600 - (instancetype)initWithUTF8StringNoCopy: (
char *)UTF8String
601 freeWhenDone: (
bool)freeWhenDone;
620 - (instancetype)initWithUTF8StringNoCopy: (
char *)UTF8String
621 length: (
size_t)UTF8StringLength
622 freeWhenDone: (
bool)freeWhenDone;
633 - (instancetype)initWithCString: (const
char *)cString
646 - (instancetype)initWithCString: (const
char *)cString
648 length: (
size_t)cStringLength;
659 - (instancetype)initWithData: (
OFData *)data
668 - (instancetype)initWithString: (
OFString *)string;
678 - (instancetype)initWithCharacters: (const OFUnichar *)characters
679 length: (
size_t)length;
688 - (instancetype)initWithUTF16String: (const OFChar16 *)string;
699 - (instancetype)initWithUTF16String: (const OFChar16 *)string
700 length: (
size_t)length;
711 - (instancetype)initWithUTF16String: (const OFChar16 *)string
725 - (instancetype)initWithUTF16String: (const OFChar16 *)string
726 length: (
size_t)length
735 - (instancetype)initWithUTF32String: (const OFChar32 *)string;
745 - (instancetype)initWithUTF32String: (const OFChar32 *)string
746 length: (
size_t)length;
756 - (instancetype)initWithUTF32String: (const OFChar32 *)string
769 - (instancetype)initWithUTF32String: (const OFChar32 *)string
770 length: (
size_t)length
803 arguments: (va_list)arguments;
814 - (instancetype)initWithContentsOfFile: (
OFString *)path;
825 - (instancetype)initWithContentsOfFile: (
OFString *)path
843 - (instancetype)initWithContentsOfIRI: (
OFIRI *)IRI;
854 - (instancetype)initWithContentsOfIRI: (
OFIRI *)IRI
870 - (size_t)getCString: (
char *)cString
871 maxLength: (
size_t)maxLength
886 - (size_t)getLossyCString: (
char *)cString
887 maxLength: (
size_t)maxLength
951 - (OFUnichar)characterAtIndex: (
size_t)index;
960 - (void)getCharacters: (OFUnichar *)buffer inRange: (
OFRange)range;
1002 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet;
1012 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet
1024 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet
1034 - (bool)containsString: (
OFString *)string;
1042 - (
OFString *)substringFromIndex: (
size_t)idx;
1050 - (
OFString *)substringToIndex: (
size_t)idx;
1079 - (
long long)longLongValueWithBase: (
unsigned char)base;
1103 - (
unsigned long long)unsignedLongLongValueWithBase: (
unsigned char)base;
1135 arguments: (va_list)arguments;
1146 withString: (
OFString *)replacement;
1161 withString: (
OFString *)replacement
1162 options: (
int)options
1171 - (bool)hasPrefix: (
OFString *)prefix;
1179 - (bool)hasSuffix: (
OFString *)suffix;
1189 componentsSeparatedByString: (
OFString *)delimiter;
1200 componentsSeparatedByString: (
OFString *)delimiter
1211 componentsSeparatedByCharactersInSet: (
OFCharacterSet *)characterSet;
1222 componentsSeparatedByCharactersInSet: (
OFCharacterSet *)characterSet
1238 - (const OFChar16 *)UTF16StringWithByteOrder: (
OFByteOrder)byteOrder;
1252 - (const OFChar32 *)UTF32StringWithByteOrder: (
OFByteOrder)byteOrder;
1264 #ifdef OF_HAVE_FILES 1270 - (void)writeToFile: (
OFString *)path;
1289 - (void)writeToIRI: (
OFIRI *)IRI;
1301 #ifdef OF_HAVE_BLOCKS 1334 extern char *_Nullable OFStrDup(
const char *_Nonnull);
1335 extern size_t OFUTF8StringEncode(OFUnichar,
char *);
1336 extern ssize_t OFUTF8StringDecode(
const char *,
size_t, OFUnichar *);
1337 extern size_t OFUTF16StringLength(
const OFChar16 *);
1338 extern size_t OFUTF32StringLength(
const OFChar32 *);
1343 OF_ASSUME_NONNULL_END
1345 #import "OFConstantString.h" 1346 #import "OFMutableString.h" 1347 #import "OFString+CryptographicHashing.h" 1348 #import "OFString+JSONParsing.h" 1349 #ifdef OF_HAVE_FILES 1350 # import "OFString+PathAdditions.h" 1352 #import "OFString+PercentEncoding.h" 1353 #import "OFString+PropertyListParsing.h" 1354 #import "OFString+XMLEscaping.h" 1357 #if !defined(NSINTEGER_DEFINED) && !__has_feature(modules) OFStringSeparationOptions
Options for separating strings.
Definition: OFString.h:113
Definition: OFString.h:95
An abstract class for storing objects in an array.
Definition: OFArray.h:103
instancetype init()
Initializes an already allocated OFString to be empty.
Definition: OFString.m:765
A protocol for comparing objects.
Definition: OFObject.h:1383
OFStringEncoding
The encoding of a string.
Definition: OFString.h:61
Definition: OFString.h:77
OFString * stringByExpandingWindowsEnvironmentStrings
The string with the Windows Environment Strings expanded.
Definition: OFString.h:274
OFString * capitalizedString
The string in capitalized form.
Definition: OFString.h:172
OFString * stringByDeletingEnclosingWhitespaces
The string with leading and trailing whitespaces deleted.
Definition: OFString.h:267
Definition: OFString.h:85
A class for storing constant strings using the @"" literal.
Definition: OFConstantString.h:37
The root class for all other classes inside ObjFW.
Definition: OFObject.h:686
OFString * uppercaseString
The string in uppercase.
Definition: OFString.h:158
Definition: OFString.h:89
A class cluster representing a character set.
Definition: OFCharacterSet.h:28
OFStringEncoding OFStringEncodingParseName(OFString *name)
Parses the specified string encoding name and returns the OFStringEncoding for it.
Definition: OFString.m:148
OFString * stringByDeletingTrailingWhitespaces
The string with trailing whitespaces deleted.
Definition: OFString.h:262
Definition: OFString.h:115
Definition: OFString.h:105
const OFUnichar * characters
The string as an array of Unicode characters.
Definition: OFString.h:225
A protocol implemented by classes that support encoding to a JSON representation. ...
Definition: OFJSONRepresentation.h:44
A class for handling strings.
Definition: OFString.h:134
Definition: OFString.h:83
const OFChar32 * UTF32String
The string in UTF-32 encoding with native byte order.
Definition: OFString.h:252
OFString * lowercaseString
The string in lowercase.
Definition: OFString.h:163
OFComparisonResult
A result of a comparison.
Definition: OFObject.h:54
Definition: OFString.h:75
const OFChar16 * UTF16String
The string in UTF-16 encoding with native byte order.
Definition: OFString.h:236
Definition: OFString.h:67
OFByteOrder
An enum for representing endianess.
Definition: OFObject.h:88
Definition: OFString.h:73
size_t UTF16StringLength
The length of the string in UTF-16 characters.
Definition: OFString.h:241
A protocol implemented by classes that support encoding to a MessagePack representation.
Definition: OFMessagePackRepresentation.h:29
OFString * stringByDeletingLeadingWhitespaces
The string with leading whitespaces deleted.
Definition: OFString.h:257
size_t UTF8StringLength
The number of bytes the string needs in UTF-8 encoding.
Definition: OFString.h:153
Definition: OFString.h:87
A class for representing IRIs, URIs, URLs and URNs, for parsing them as well as accessing parts of th...
Definition: OFIRI.h:35
long long longLongValue
The decimal value of the string as a long long.
Definition: OFString.h:185
Definition: OFString.h:93
A protocol for the creation of mutable copies.
Definition: OFObject.h:1367
A protocol for the creation of copies.
Definition: OFObject.h:1346
A class for storing arbitrary data in an array.
Definition: OFData.h:41
size_t length
The length of the string in Unicode codepoints.
Definition: OFString.h:139
Definition: OFString.h:71
Definition: OFString.h:79
void(^ OFStringLineEnumerationBlock)(OFString *line, bool *stop)
A block for enumerating the lines of a string.
Definition: OFString.h:126
const char * UTF8String
The OFString as a UTF-8 encoded C string.
Definition: OFString.h:148
double doubleValue
The double value of the string as a double.
Definition: OFString.h:214
float floatValue
The float value of the string as a float.
Definition: OFString.h:206
instancetype string()
Creates a new OFString.
Definition: OFString.m:599
unsigned long long unsignedLongLongValue
The decimal value of the string as an unsigned long long.
Definition: OFString.h:198
Definition: OFString.h:91
A range.
Definition: OFObject.h:106
Definition: OFString.h:81
Definition: OFString.h:69
OFStringSearchOptions
Options for searching in strings.
Definition: OFString.h:103
OFString * OFStringEncodingName(OFStringEncoding encoding)
Returns the name of the specified OFStringEncoding.
Definition: OFString.m:203