From a0ab6376f8d5f5fb96b34414eaf82d1d86488a36 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Fri, 13 Jun 2014 14:21:05 -0400 Subject: [PATCH] Added tokenCount() functions. --- Jupiter/Readable_String.h | 11 +++++++++ Jupiter/Readable_String_Imp.h | 44 ++++++++++++++++++++++++++++++++++ Release/Jupiter.lib | Bin 230774 -> 232600 bytes 3 files changed, 55 insertions(+) diff --git a/Jupiter/Readable_String.h b/Jupiter/Readable_String.h index 96c39ac..46e2038 100644 --- a/Jupiter/Readable_String.h +++ b/Jupiter/Readable_String.h @@ -178,6 +178,17 @@ namespace Jupiter */ unsigned int wordCount(const T *whitespace) const; + /** + * @brief Counts the number of occurances for a specific token. + * + * @param token Token to scan for. + * @return Number of occurances of the specified token in the string. + */ + size_t tokenCount(const T &token) const; + size_t tokenCount(const Readable_String &token) const; + size_t tokenCount(const std::basic_string &token) const; + size_t tokenCount(const T *token, size_t tokenLength) const; + /** * @brief Interprets the string as a bool. * diff --git a/Jupiter/Readable_String_Imp.h b/Jupiter/Readable_String_Imp.h index 966de52..25a63e1 100644 --- a/Jupiter/Readable_String_Imp.h +++ b/Jupiter/Readable_String_Imp.h @@ -789,6 +789,50 @@ template unsigned int Jupiter::Readable_String::wordCount(const T return result; } +// tokenCount() + +template size_t Jupiter::Readable_String::tokenCount(const T &token) const +{ + size_t total = 0; + for (size_t i = 0; i != this->size(); i++) + if (this->get(i) == token) + total++; + return total; +} + +template size_t Jupiter::Readable_String::tokenCount(const Jupiter::Readable_String &token) const +{ + return this->tokenCount(token.ptr(), token.size()); +} + +template size_t Jupiter::Readable_String::tokenCount(const std::basic_string &token) const +{ + return this->tokenCount(token.data(), token.size()); +} + +template size_t Jupiter::Readable_String::tokenCount(const T *token, size_t tokenLength) const +{ + if (tokenLength == 0 || tokenLength > this->size()) + return 0; + if (tokenLength == this->size()) + return this->equals(token, tokenLength) ? 1 : 0; + + size_t total = 0; + for (size_t i = 0, j; i != this->size() - tokenLength + 1; i++) + { + j = 0; + while (this->get(i + j) == token[j]) + { + if (++j == tokenLength) + { + total++; + break; + } + } + } + return total; +} + // as template<> bool inline Jupiter::Readable_String::asBool() const diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index a5d082f489c038a05bc8cd50002a6ebb9002cd03..46e05805553b0d0a99c114968eef0b3a99856035 100644 GIT binary patch delta 28090 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 V`kQd%{Hq&yTxp)}`>-na{{V3RLplHe delta 27835 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