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;
361 #if defined(OF_WINDOWS) || defined(DOXYGEN)
365 @property (readonly, nonatomic)
383 + (instancetype)stringWithUTF8String: (const
char *)UTF8String;
394 + (instancetype)stringWithUTF8String: (const
char *)UTF8String
395 length: (
size_t)UTF8StringLength;
412 + (instancetype)stringWithUTF8StringNoCopy: (
char *)UTF8String
413 freeWhenDone: (
bool)freeWhenDone;
431 + (instancetype)stringWithUTF8StringNoCopy: (
char *)UTF8String
432 length: (
size_t)UTF8StringLength
433 freeWhenDone: (
bool)freeWhenDone;
443 + (instancetype)stringWithCString: (const
char *)cString
456 + (instancetype)stringWithCString: (const
char *)cString
458 length: (
size_t)cStringLength;
468 + (instancetype)stringWithData: (
OFData *)data
477 + (instancetype)stringWithString: (
OFString *)string;
487 + (instancetype)stringWithCharacters: (const OFUnichar *)characters
488 length: (
size_t)length;
497 + (instancetype)stringWithUTF16String: (const OFChar16 *)string;
508 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
509 length: (
size_t)length;
520 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
534 + (instancetype)stringWithUTF16String: (const OFChar16 *)string
535 length: (
size_t)length
544 + (instancetype)stringWithUTF32String: (const OFChar32 *)string;
554 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
555 length: (
size_t)length;
565 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
578 + (instancetype)stringWithUTF32String: (const OFChar32 *)string
579 length: (
size_t)length
606 + (instancetype)stringWithContentsOfFile: (
OFString *)path;
617 + (instancetype)stringWithContentsOfFile: (
OFString *)path
634 + (instancetype)stringWithContentsOfIRI: (
OFIRI *)IRI;
645 + (instancetype)stringWithContentsOfIRI: (
OFIRI *)IRI
653 - (instancetype)
init OF_DESIGNATED_INITIALIZER;
663 - (instancetype)initWithUTF8String: (const
char *)UTF8String;
674 - (instancetype)initWithUTF8String: (const
char *)UTF8String
675 length: (
size_t)UTF8StringLength;
692 - (instancetype)initWithUTF8StringNoCopy: (
char *)UTF8String
693 freeWhenDone: (
bool)freeWhenDone;
712 - (instancetype)initWithUTF8StringNoCopy: (
char *)UTF8String
713 length: (
size_t)UTF8StringLength
714 freeWhenDone: (
bool)freeWhenDone;
725 - (instancetype)initWithCString: (const
char *)cString
738 - (instancetype)initWithCString: (const
char *)cString
740 length: (
size_t)cStringLength;
751 - (instancetype)initWithData: (
OFData *)data
760 - (instancetype)initWithString: (
OFString *)string;
770 - (instancetype)initWithCharacters: (const OFUnichar *)characters
771 length: (
size_t)length;
780 - (instancetype)initWithUTF16String: (const OFChar16 *)string;
791 - (instancetype)initWithUTF16String: (const OFChar16 *)string
792 length: (
size_t)length;
803 - (instancetype)initWithUTF16String: (const OFChar16 *)string
817 - (instancetype)initWithUTF16String: (const OFChar16 *)string
818 length: (
size_t)length
827 - (instancetype)initWithUTF32String: (const OFChar32 *)string;
837 - (instancetype)initWithUTF32String: (const OFChar32 *)string
838 length: (
size_t)length;
848 - (instancetype)initWithUTF32String: (const OFChar32 *)string
861 - (instancetype)initWithUTF32String: (const OFChar32 *)string
862 length: (
size_t)length
895 arguments: (va_list)arguments;
906 - (instancetype)initWithContentsOfFile: (
OFString *)path;
917 - (instancetype)initWithContentsOfFile: (
OFString *)path
935 - (instancetype)initWithContentsOfIRI: (
OFIRI *)IRI;
946 - (instancetype)initWithContentsOfIRI: (
OFIRI *)IRI
962 - (size_t)getCString: (
char *)cString
963 maxLength: (
size_t)maxLength
978 - (size_t)getLossyCString: (
char *)cString
979 maxLength: (
size_t)maxLength
1056 - (OFUnichar)characterAtIndex: (
size_t)index;
1065 - (void)getCharacters: (OFUnichar *)buffer inRange: (
OFRange)range;
1140 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet
1141 OF_DEPRECATED(ObjFW, 1, 3, "Use -[rangeOfCharacterFromSet:] instead");
1151 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet
1153 OF_DEPRECATED(ObjFW, 1, 3,
1154 "Use -[rangeOfCharacterFromSet:options:] instead");
1165 - (size_t)indexOfCharacterFromSet: (
OFCharacterSet *)characterSet
1168 OF_DEPRECATED(ObjFW, 1, 3,
1169 "Use -[rangeOfCharacterFromSet:options:range:] instead");
1177 - (bool)containsString: (
OFString *)string;
1185 - (
OFString *)substringFromIndex: (
size_t)idx;
1193 - (
OFString *)substringToIndex: (
size_t)idx;
1217 - (
signed char)charValueWithBase: (
unsigned char)base;
1233 - (short)shortValueWithBase: (
unsigned char)base;
1249 - (int)intValueWithBase: (
unsigned char)base;
1265 - (long)longValueWithBase: (
unsigned char)base;
1281 - (
long long)longLongValueWithBase: (
unsigned char)base;
1297 - (
unsigned char)unsignedCharValueWithBase: (
unsigned char)base;
1313 - (
unsigned short)unsignedShortValueWithBase: (
unsigned char)base;
1329 - (
unsigned int)unsignedIntValueWithBase: (
unsigned char)base;
1345 - (
unsigned long)unsignedLongValueWithBase: (
unsigned char)base;
1362 - (
unsigned long long)unsignedLongLongValueWithBase: (
unsigned char)base;
1394 arguments: (va_list)arguments;
1405 withString: (
OFString *)replacement;
1420 withString: (
OFString *)replacement
1421 options: (
int)options
1430 - (bool)hasPrefix: (
OFString *)prefix;
1438 - (bool)hasSuffix: (
OFString *)suffix;
1448 componentsSeparatedByString: (
OFString *)delimiter;
1459 componentsSeparatedByString: (
OFString *)delimiter
1470 componentsSeparatedByCharactersInSet: (
OFCharacterSet *)characterSet;
1481 componentsSeparatedByCharactersInSet: (
OFCharacterSet *)characterSet
1497 - (const OFChar16 *)UTF16StringWithByteOrder: (
OFByteOrder)byteOrder;
1511 - (const OFChar32 *)UTF32StringWithByteOrder: (
OFByteOrder)byteOrder;
1523 #ifdef OF_HAVE_FILES
1529 - (void)writeToFile: (
OFString *)path;
1548 - (void)writeToIRI: (
OFIRI *)IRI;
1560 #ifdef OF_HAVE_BLOCKS
1612 OF_ASSUME_NONNULL_END
1614 #import "OFConstantString.h"
1615 #import "OFMutableString.h"
1616 #import "OFString+CryptographicHashing.h"
1617 #import "OFString+JSONParsing.h"
1618 #ifdef OF_HAVE_FILES
1619 # import "OFString+PathAdditions.h"
1621 #import "OFString+PercentEncoding.h"
1622 #import "OFString+PropertyListParsing.h"
1623 #import "OFString+XMLEscaping.h"
1626 #if !defined(NSINTEGER_DEFINED) && !__has_feature(modules)
OFComparisonResult
A result of a comparison.
Definition: OFObject.h:58
OFByteOrder
An enum for representing endianness.
Definition: OFObject.h:92
size_t OFUTF16StringLength(const OFChar16 *string)
Returns the length of the specified UTF-16 string.
Definition: OFString.m:348
OFStringEncoding OFStringEncodingParseName(OFString *name)
Parses the specified string encoding name and returns the OFStringEncoding for it.
Definition: OFString.m:167
size_t OFUTF32StringLength(const OFChar32 *string)
Returns the length of the specified UTF-32 string.
Definition: OFString.m:359
OFStringSeparationOptions
Options for separating strings.
Definition: OFString.h:121
@ OFStringSkipEmptyComponents
Definition: OFString.h:123
OFString * OFStringEncodingName(OFStringEncoding encoding)
Returns the name of the specified OFStringEncoding.
Definition: OFString.m:229
OFStringSearchOptions
Options for searching in strings.
Definition: OFString.h:111
@ OFStringSearchBackwards
Definition: OFString.h:113
OFStringEncoding
The encoding of a string.
Definition: OFString.h:65
@ OFStringEncodingWindows1251
Definition: OFString.h:83
@ OFStringEncodingKOI8R
Definition: OFString.h:95
@ OFStringEncodingISO8859_2
Definition: OFString.h:77
@ OFStringEncodingISO8859_3
Definition: OFString.h:79
@ OFStringEncodingASCII
Definition: OFString.h:73
@ OFStringEncodingISO8859_1
Definition: OFString.h:75
@ OFStringEncodingWindows1252
Definition: OFString.h:85
@ OFStringEncodingMacRoman
Definition: OFString.h:93
@ OFStringEncodingCodepage437
Definition: OFString.h:87
@ OFStringEncodingCodepage850
Definition: OFString.h:89
@ OFStringEncodingAutodetect
Definition: OFString.h:103
@ OFStringEncodingCodepage858
Definition: OFString.h:91
@ OFStringEncodingWindows1250
Definition: OFString.h:99
@ OFStringEncodingCodepage852
Definition: OFString.h:101
@ OFStringEncodingUTF8
Definition: OFString.h:71
@ OFStringEncodingISO8859_15
Definition: OFString.h:81
@ OFStringEncodingKOI8U
Definition: OFString.h:97
void(^ OFStringLineEnumerationBlock)(OFString *line, bool *stop)
A block for enumerating the lines of a string.
Definition: OFString.h:134
An abstract class for storing objects in an array.
Definition: OFArray.h:109
A class cluster representing a character set.
Definition: OFCharacterSet.h:33
A class for storing constant strings using the @"" literal.
Definition: OFConstantString.h:42
A class for storing arbitrary data in an array.
Definition: OFData.h:46
A class for representing IRIs, URIs, URLs and URNs, for parsing them as well as accessing parts of th...
Definition: OFIRI.h:41
The root class for all other classes inside ObjFW.
Definition: OFObject.h:692
A class for handling strings.
Definition: OFString.h:143
instancetype init()
Initializes an already allocated OFString to be empty.
Definition: OFString.m:901
const OFUnichar * characters
The string as an array of Unicode characters.
Definition: OFString.h:317
OFString * stringByDeletingEnclosingWhitespaces
The string with leading and trailing whitespaces deleted.
Definition: OFString.h:359
const char * UTF8String
The OFString as a UTF-8 encoded C string.
Definition: OFString.h:156
const OFChar16 * UTF16String
The string in UTF-16 encoding with native byte order.
Definition: OFString.h:328
OFString * lowercaseString
The string in lowercase.
Definition: OFString.h:171
unsigned long long unsignedLongLongValue
The decimal value of the string as an unsigned long long.
Definition: OFString.h:290
size_t UTF16StringLength
The length of the string in UTF-16 characters.
Definition: OFString.h:333
double doubleValue
The double value of the string as a double.
Definition: OFString.h:306
unsigned long unsignedLongValue
The decimal value of the string as an unsigned long.
Definition: OFString.h:279
OFString * uppercaseString
The string in uppercase.
Definition: OFString.h:166
float floatValue
The float value of the string as a float.
Definition: OFString.h:298
OFString * stringByDeletingTrailingWhitespaces
The string with trailing whitespaces deleted.
Definition: OFString.h:354
size_t UTF8StringLength
The number of bytes the string needs in UTF-8 encoding.
Definition: OFString.h:161
const OFChar32 * UTF32String
The string in UTF-32 encoding with native byte order.
Definition: OFString.h:344
long longValue
The decimal value of the string as a long.
Definition: OFString.h:224
size_t length
The length of the string in Unicode code points.
Definition: OFString.h:147
unsigned int unsignedIntValue
The decimal value of the string as an unsigned int.
Definition: OFString.h:268
OFString * stringByExpandingWindowsEnvironmentStrings
The string with the Windows Environment Strings expanded.
Definition: OFString.h:366
long long longLongValue
The decimal value of the string as a long long.
Definition: OFString.h:235
int intValue
The decimal value of the string as an int.
Definition: OFString.h:213
unsigned char unsignedCharValue
The decimal value of the string as an unsigned char.
Definition: OFString.h:246
unsigned short unsignedShortValue
The decimal value of the string as an unsigned short.
Definition: OFString.h:257
signed char charValue
The decimal value of the string as a char.
Definition: OFString.h:191
OFString * capitalizedString
The string in capitalized form.
Definition: OFString.h:180
short shortValue
The decimal value of the string as a short.
Definition: OFString.h:202
instancetype string()
Creates a new OFString.
Definition: OFString.m:735
OFString * stringByDeletingLeadingWhitespaces
The string with leading whitespaces deleted.
Definition: OFString.h:349
A protocol for comparing objects.
Definition: OFObject.h:1392
A protocol for the creation of copies.
Definition: OFObject.h:1354
A protocol implemented by classes that support encoding to a JSON representation.
Definition: OFJSONRepresentation.h:49
A protocol implemented by classes that support encoding to a MessagePack representation.
Definition: OFMessagePackRepresentation.h:33
A protocol for the creation of mutable copies.
Definition: OFObject.h:1375
A range.
Definition: OFObject.h:110