diff --git a/AK/StringView.cpp b/AK/StringView.cpp index f927f32211..e9e7a86fd8 100644 --- a/AK/StringView.cpp +++ b/AK/StringView.cpp @@ -25,10 +25,10 @@ */ #include +#include #include #include #include -#include #include namespace AK { @@ -157,6 +157,15 @@ bool StringView::matches(const StringView& mask, CaseSensitivity case_sensitivit return StringUtils::matches(*this, mask, case_sensitivity); } +bool StringView::contains(char needle) const +{ + for (char current : *this) { + if (current == needle) + return true; + } + return false; +} + StringView StringView::substring_view(size_t start, size_t length) const { ASSERT(start + length <= m_length); diff --git a/AK/StringView.h b/AK/StringView.h index 068873400a..faeacefb09 100644 --- a/AK/StringView.h +++ b/AK/StringView.h @@ -73,6 +73,7 @@ public: bool starts_with(char) const; bool ends_with(char) const; bool matches(const StringView& mask, CaseSensitivity = CaseSensitivity::CaseInsensitive) const; + bool contains(char) const; StringView substring_view(size_t start, size_t length) const; Vector split_view(char, bool keep_empty = false) const;