#ifndef __STRING_UTILS_H #define __STRING_UTILS_H #include "Types.h" namespace tzc { class DECLDLL StringUtils { public: /** * @brief 判断 字符串src 是否以 字符串 str 起始 * * @note str的长度若大于src, 则返回FALSE */ static TZ_BOOL IsBeginStr(const std::string & src, const std::string & str); /** * @brief 判断 字符串src 是否以 字符串 str 结尾 * * @note str的长度若大于src, 则返回FALSE */ static TZ_BOOL IsEndStr(const std::string & src, const std::string & str); /** * @brief 使用 字符ch 作为分界符,将 字符串src 分割成若干个子字符串 */ static void Split( const std::string & src, TZ_CHAR ch, std::list & arr); static void Split( const std::string & src, TZ_CHAR ch, std::vector & arr); /** * @brief 使用 sets集合中的 字符ch 作为分界符,将 字符串src 分割成若干个子字符串 */ static void Split(const std::string & src, std::set sets, std::list & arr); static void Split(const std::string & src, std::set sets, std::vector & arr); /** * @brief 将 字符串src 中的 字符srcch 全部替换为 目的字符dstch */ static void Replace(std::string & src, TZ_CHAR srcch, TZ_CHAR dstch); /** * @brief 从 字符串src中截取最后一个 字符ch 之后的所有字符,并存于 字符串dst * * @example * 1、src = "StringUtils.cpp", ch = '.' => dst 为 ".cpp" * 2、src = "StringUtils.cpp.txt", ch = '.' => dst 为 ".txt" * 3、src = "StringUtils.cpp.txt", ch = 't' => dst 为 "t" * 4、src = "StringUtils.cpp.txt", ch = 's' => dst 为 "s.cpp.txt" * 5、src = "StringUtils.cpp.txt", ch = 'a' => dst 为 "" */ static void TruncSuffix(const std::string & src, std::string & dst, TZ_CHAR ch = '.'); /** * @brief 从 字符串src中截取最后一个 字符ch 之前的所有字符,并存于 字符串dst * * @example * 1、src = "StringUtils.cpp", ch = '.' => dst 为 "StringUtils" * 2、src = "StringUtils.cpp.txt", ch = '.' => dst 为 "StringUtils.cpp" * 3、src = "StringUtils.cpp.txt", ch = 't' => dst 为 "StringUtils.cpp.tx" * 4、src = "StringUtils.cpp.txt", ch = 's' => dst 为 "StringUtil" * 5、src = "StringUtils.cpp.txt", ch = 'a' => dst 为 "" */ static void TruncPrefix(const std::string & src, std::string & dst, TZ_CHAR ch = '.'); /** * @brief 判断字符串str中是否含有字符char */ static TZ_BOOL IsContain(const std::string & str, TZ_CHAR ch); static TZ_BOOL IsContain(const std::string & str, std::set sets); }; }; // namespace tzc { #endif // !__STRING_UTILS_H