StringUtils.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef __STRING_UTILS_H
  2. #define __STRING_UTILS_H
  3. #include "Types.h"
  4. namespace tzc {
  5. class DECLDLL StringUtils {
  6. public:
  7. /**
  8. * @brief 判断 字符串src 是否以 字符串 str 起始
  9. *
  10. * @note str的长度若大于src, 则返回FALSE
  11. */
  12. static TZ_BOOL IsBeginStr(const std::string & src, const std::string & str);
  13. /**
  14. * @brief 判断 字符串src 是否以 字符串 str 结尾
  15. *
  16. * @note str的长度若大于src, 则返回FALSE
  17. */
  18. static TZ_BOOL IsEndStr(const std::string & src, const std::string & str);
  19. /**
  20. * @brief 使用 字符ch 作为分界符,将 字符串src 分割成若干个子字符串
  21. */
  22. static void Split(
  23. const std::string & src, TZ_CHAR ch, std::list<std::string> & arr);
  24. static void Split(
  25. const std::string & src, TZ_CHAR ch, std::vector<std::string> & arr);
  26. /**
  27. * @brief 使用 sets集合中的 字符ch 作为分界符,将 字符串src 分割成若干个子字符串
  28. */
  29. static void Split(const std::string & src,
  30. std::set<TZ_CHAR> sets, std::list<std::string> & arr);
  31. static void Split(const std::string & src,
  32. std::set<TZ_CHAR> sets, std::vector<std::string> & arr);
  33. /**
  34. * @brief 将 字符串src 中的 字符srcch 全部替换为 目的字符dstch
  35. */
  36. static void Replace(std::string & src, TZ_CHAR srcch, TZ_CHAR dstch);
  37. /**
  38. * @brief 从 字符串src中截取最后一个 字符ch 之后的所有字符,并存于 字符串dst
  39. *
  40. * @example
  41. * 1、src = "StringUtils.cpp", ch = '.' => dst 为 ".cpp"
  42. * 2、src = "StringUtils.cpp.txt", ch = '.' => dst 为 ".txt"
  43. * 3、src = "StringUtils.cpp.txt", ch = 't' => dst 为 "t"
  44. * 4、src = "StringUtils.cpp.txt", ch = 's' => dst 为 "s.cpp.txt"
  45. * 5、src = "StringUtils.cpp.txt", ch = 'a' => dst 为 ""
  46. */
  47. static void TruncSuffix(const std::string & src, std::string & dst, TZ_CHAR ch = '.');
  48. /**
  49. * @brief 从 字符串src中截取最后一个 字符ch 之前的所有字符,并存于 字符串dst
  50. *
  51. * @example
  52. * 1、src = "StringUtils.cpp", ch = '.' => dst 为 "StringUtils"
  53. * 2、src = "StringUtils.cpp.txt", ch = '.' => dst 为 "StringUtils.cpp"
  54. * 3、src = "StringUtils.cpp.txt", ch = 't' => dst 为 "StringUtils.cpp.tx"
  55. * 4、src = "StringUtils.cpp.txt", ch = 's' => dst 为 "StringUtil"
  56. * 5、src = "StringUtils.cpp.txt", ch = 'a' => dst 为 ""
  57. */
  58. static void TruncPrefix(const std::string & src, std::string & dst, TZ_CHAR ch = '.');
  59. /**
  60. * @brief 判断字符串str中是否含有字符char
  61. */
  62. static TZ_BOOL IsContain(const std::string & str, TZ_CHAR ch);
  63. static TZ_BOOL IsContain(const std::string & str, std::set<TZ_CHAR> sets);
  64. };
  65. }; // namespace tzc {
  66. #endif // !__STRING_UTILS_H