BString: Add IStartsWith() and IEndsWith() methods
Case-insensitive version of StartsWith() and EndsWith()
This commit is contained in:
@@ -243,10 +243,18 @@ public:
|
||||
bool StartsWith(const char* string) const;
|
||||
bool StartsWith(const char* string, int32 length) const;
|
||||
|
||||
bool IStartsWith(const BString& string) const;
|
||||
bool IStartsWith(const char* string) const;
|
||||
bool IStartsWith(const char* string, int32 length) const;
|
||||
|
||||
bool EndsWith(const BString& string) const;
|
||||
bool EndsWith(const char* string) const;
|
||||
bool EndsWith(const char* string, int32 length) const;
|
||||
|
||||
bool IEndsWith(const BString& string) const;
|
||||
bool IEndsWith(const char* string) const;
|
||||
bool IEndsWith(const char* string, int32 length) const;
|
||||
|
||||
// Replacing
|
||||
BString& ReplaceFirst(char replaceThis, char withThis);
|
||||
BString& ReplaceLast(char replaceThis, char withThis);
|
||||
|
||||
@@ -1412,6 +1412,30 @@ BString::StartsWith(const char* string, int32 length) const
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
BString::IStartsWith(const BString& string) const
|
||||
{
|
||||
return IStartsWith(string.String(), string.Length());
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
BString::IStartsWith(const char* string) const
|
||||
{
|
||||
return IStartsWith(string, strlen(string));
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
BString::IStartsWith(const char* string, int32 length) const
|
||||
{
|
||||
if (length > Length() || length > (int32)strlen(string))
|
||||
return false;
|
||||
|
||||
return _IFindAfter(string, 0, length) == 0;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
BString::EndsWith(const BString& string) const
|
||||
{
|
||||
@@ -1437,6 +1461,31 @@ BString::EndsWith(const char* string, int32 length) const
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
BString::IEndsWith(const BString& string) const
|
||||
{
|
||||
return IEndsWith(string.String(), string.Length());
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
BString::IEndsWith(const char* string) const
|
||||
{
|
||||
return IEndsWith(string, strlen(string));
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
BString::IEndsWith(const char* string, int32 length) const
|
||||
{
|
||||
int32 offset = Length() - length;
|
||||
if (offset < 0)
|
||||
return false;
|
||||
|
||||
return _IFindBefore(string, Length(), length) == offset;
|
||||
}
|
||||
|
||||
|
||||
// #pragma mark - Replacing
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user