AK: Add a helper to get the last split-group

This commit is contained in:
Hendiadyoin1 2022-06-18 18:35:36 +02:00 committed by Andreas Kling
parent 96276c87cf
commit 154871834b
Notes: sideshowbarker 2024-07-17 10:16:43 +09:00
2 changed files with 10 additions and 0 deletions

View file

@ -159,6 +159,8 @@ public:
using SearchDirection = StringUtils::SearchDirection;
[[nodiscard]] Optional<size_t> find_any_of(StringView needles, SearchDirection direction) const { return StringUtils::find_any_of(*this, needles, direction); }
[[nodiscard]] StringView find_last_split_view(char separator) const { return view().find_last_split_view(separator); }
[[nodiscard]] String substring(size_t start, size_t length) const;
[[nodiscard]] String substring(size_t start) const;
[[nodiscard]] StringView substring_view(size_t start, size_t length) const;

View file

@ -127,6 +127,14 @@ public:
[[nodiscard]] Vector<StringView> split_view_if(Function<bool(char)> const& predicate, bool keep_empty = false) const;
[[nodiscard]] StringView find_last_split_view(char separator) const
{
auto begin = find_last(separator);
if (!begin.has_value())
return *this;
return substring_view(begin.release_value() + 1);
}
template<VoidFunction<StringView> Callback>
void for_each_split_view(char separator, bool keep_empty, Callback callback) const
{