89 String (
const wchar_t* text);
131 String (
const std::string&);
155 #if (JUCE_STRING_UTF_TYPE == 32)
157 #elif (JUCE_STRING_UTF_TYPE == 16)
159 #elif (DOXYGEN || JUCE_STRING_UTF_TYPE == 8)
162 #error "You must set the value of JUCE_STRING_UTF_TYPE to be either 8, 16, or 32!"
167 int hashCode()
const noexcept;
170 int64 hashCode64()
const noexcept;
173 size_t hash()
const noexcept;
176 int length()
const noexcept;
207 #if ! JUCE_NATIVE_WCHAR_IS_UTF32
232 template <
class CharPo
inter>
248 CharPointerType (addBytesToPointer (text.getAddress(), (
int)
byteOffsetOfNull))
261 template <
class CharPo
inter>
276 CharPointerType (addBytesToPointer (text.getAddress(), (
int)
byteOffsetOfNull))
283 template <
class CharPo
inter>
286 appendCharPointer (
textToAppend, std::numeric_limits<size_t>::max());
609 String substring (
int startIndex,
int endIndex)
const;
659 bool ignoreCase)
const;
671 bool ignoreCase)
const;
688 bool ignoreCase)
const;
699 bool ignoreCase)
const;
750 String replaceSection (
int startIndex,
837 bool isQuotedString()
const;
961 explicit String (
double doubleValue);
989 explicit String (
bool) =
delete;
1064 static String toHexString (
const void* data,
int size,
int groupSize = 1);
1071 template <
typename DecimalType>
1093 #if JUCE_PROJUCER_LIVE_BUILD
1095 constexpr int bufferSize = 311;
1096 char buffer[bufferSize];
1097 auto*
ptr = &(buffer[0]);
1098 auto*
const safeEnd =
ptr + (bufferSize - 1);
1182 auto factor = std::pow (10.0,
shift);
1185 std::stringstream
ss;
1186 ss << std::fixed << std::setprecision (std::max (
shift, 0)) <<
rounded;
1224 const char* toRawUTF8()
const;
1261 const wchar_t* toWideCharPointer()
const;
1264 std::string toStdString()
const;
1353 #if JUCE_MAC || JUCE_IOS || DOXYGEN
1386 CharPointerType text;
1389 struct PreallocationBytes
1391 explicit PreallocationBytes (
size_t)
noexcept;
1395 explicit String (
const PreallocationBytes&);
1396 size_t getByteOffsetOfEnd() const noexcept;
1397 JUCE_DEPRECATED (String (const String&,
size_t));
1402 operator
bool() const noexcept {
return false; }
1405 static String formattedRaw (
const char*, ...);
1407 static String createHex (uint8);
1408 static String createHex (uint16);
1409 static String createHex (uint32);
1410 static String createHex (uint64);
1412 template <
typename Type>
1413 static String createHex (Type n) {
return createHex (
static_cast<typename TypeHelpers::UnsignedTypeWithSize<(
int) sizeof (n)
>::type> (n)); }
1418JUCE_API String JUCE_CALLTYPE operator+ (
const char* string1,
const String& string2);
1420JUCE_API String JUCE_CALLTYPE operator+ (
const wchar_t* string1,
const String& string2);
1422JUCE_API String JUCE_CALLTYPE operator+ (
char string1,
const String& string2);
1424JUCE_API String JUCE_CALLTYPE operator+ (
wchar_t string1,
const String& string2);
1425#if ! JUCE_NATIVE_WCHAR_IS_UTF32
1427JUCE_API String JUCE_CALLTYPE operator+ (juce_wchar string1,
const String& string2);
1431JUCE_API String JUCE_CALLTYPE operator+ (String string1,
const String& string2);
1433JUCE_API String JUCE_CALLTYPE operator+ (String string1,
const char* string2);
1435JUCE_API String JUCE_CALLTYPE operator+ (String string1,
const wchar_t* string2);
1437JUCE_API String JUCE_CALLTYPE operator+ (String string1,
const std::string& string2);
1439JUCE_API String JUCE_CALLTYPE operator+ (String string1,
char characterToAppend);
1441JUCE_API String JUCE_CALLTYPE operator+ (String string1,
wchar_t characterToAppend);
1442#if ! JUCE_NATIVE_WCHAR_IS_UTF32
1444JUCE_API String JUCE_CALLTYPE operator+ (String string1, juce_wchar characterToAppend);
1449JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
char characterToAppend);
1451JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
wchar_t characterToAppend);
1452#if ! JUCE_NATIVE_WCHAR_IS_UTF32
1454JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, juce_wchar characterToAppend);
1458JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
const char* string2);
1460JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
const wchar_t* string2);
1462JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
const String& string2);
1464JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, StringRef string2);
1466JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
const std::string& string2);
1469JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, uint8 number);
1471JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
short number);
1473JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
int number);
1475JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
long number);
1477JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
unsigned long number);
1479JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, int64 number);
1481JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, uint64 number);
1483JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
float number);
1485JUCE_API String& JUCE_CALLTYPE operator<< (String& string1,
double number);
1490String& JUCE_CALLTYPE operator<< (String&,
bool) =
delete;
1495JUCE_API
bool JUCE_CALLTYPE operator== (
const String& string1,
const String& string2)
noexcept;
1497JUCE_API
bool JUCE_CALLTYPE operator== (
const String& string1,
const char* string2)
noexcept;
1499JUCE_API
bool JUCE_CALLTYPE operator== (
const String& string1,
const wchar_t* string2)
noexcept;
1501JUCE_API
bool JUCE_CALLTYPE operator== (
const String& string1, CharPointer_UTF8 string2)
noexcept;
1503JUCE_API
bool JUCE_CALLTYPE operator== (
const String& string1, CharPointer_UTF16 string2)
noexcept;
1505JUCE_API
bool JUCE_CALLTYPE operator== (
const String& string1, CharPointer_UTF32 string2)
noexcept;
1508JUCE_API
bool JUCE_CALLTYPE operator!= (
const String& string1,
const String& string2)
noexcept;
1510JUCE_API
bool JUCE_CALLTYPE operator!= (
const String& string1,
const char* string2)
noexcept;
1512JUCE_API
bool JUCE_CALLTYPE operator!= (
const String& string1,
const wchar_t* string2)
noexcept;
1514JUCE_API
bool JUCE_CALLTYPE operator!= (
const String& string1, CharPointer_UTF8 string2)
noexcept;
1516JUCE_API
bool JUCE_CALLTYPE operator!= (
const String& string1, CharPointer_UTF16 string2)
noexcept;
1518JUCE_API
bool JUCE_CALLTYPE operator!= (
const String& string1, CharPointer_UTF32 string2)
noexcept;
1524template <
class traits>
1525std::basic_ostream <char, traits>& JUCE_CALLTYPE operator<< (std::basic_ostream <char, traits>& stream,
const String& stringToWrite)
1527 return stream << stringToWrite.toRawUTF8();
1533template <
class traits>
1534std::basic_ostream <wchar_t, traits>& JUCE_CALLTYPE operator<< (std::basic_ostream <wchar_t, traits>& stream,
const String& stringToWrite)
1536 return stream << stringToWrite.toWideCharPointer();
1540JUCE_API OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream,
const String& stringToWrite);
1543JUCE_API OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, StringRef stringToWrite);
1550 template <>
struct hash<juce::String>
1552 size_t operator() (
const juce::String& s)
const noexcept {
return s.hash(); }
bool isEmpty() const noexcept
CharPointerType getCharPointer() const noexcept
bool isEmpty() const noexcept
static String toDecimalStringWithSignificantFigures(DecimalType number, int numberOfSignificantFigures)
void appendCharPointer(CharPointer startOfTextToAppend, CharPointer endOfTextToAppend)
void appendCharPointer(CharPointer textToAppend, size_t maxCharsToTake)
void appendCharPointer(CharPointer textToAppend)
bool isNotEmpty() const noexcept