mirror of
https://github.com/SerenityOS/serenity
synced 2024-07-21 18:15:58 +00:00
AK: Add StringView::find_last_not
This commit is contained in:
parent
48aea321c5
commit
9718667bcf
|
@ -388,6 +388,15 @@ Optional<size_t> find_last(StringView haystack, char needle)
|
|||
return {};
|
||||
}
|
||||
|
||||
Optional<size_t> find_last_not(StringView haystack, char needle)
|
||||
{
|
||||
for (size_t i = haystack.length(); i > 0; --i) {
|
||||
if (haystack[i - 1] != needle)
|
||||
return i - 1;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
Vector<size_t> find_all(StringView haystack, StringView needle)
|
||||
{
|
||||
Vector<size_t> positions;
|
||||
|
|
|
@ -74,6 +74,7 @@ StringView trim_whitespace(StringView string, TrimMode mode);
|
|||
Optional<size_t> find(StringView haystack, char needle, size_t start = 0);
|
||||
Optional<size_t> find(StringView haystack, StringView needle, size_t start = 0);
|
||||
Optional<size_t> find_last(StringView haystack, char needle);
|
||||
Optional<size_t> find_last_not(StringView haystack, char needle);
|
||||
Vector<size_t> find_all(StringView haystack, StringView needle);
|
||||
enum class SearchDirection {
|
||||
Forward,
|
||||
|
|
|
@ -107,6 +107,7 @@ public:
|
|||
}
|
||||
[[nodiscard]] Optional<size_t> find(StringView needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
|
||||
[[nodiscard]] Optional<size_t> find_last(char needle) const { return StringUtils::find_last(*this, needle); }
|
||||
[[nodiscard]] Optional<size_t> find_last_not(char needle) const { return StringUtils::find_last_not(*this, needle); }
|
||||
// FIXME: Implement find_last(StringView) for API symmetry.
|
||||
|
||||
[[nodiscard]] Vector<size_t> find_all(StringView needle) const;
|
||||
|
|
Loading…
Reference in a new issue