mFrame
載入中...
搜尋中...
無符合項目
Strings.h
1
8#ifndef MFRAME_F115800B_0B0A_4795_ABFB_A37BD1DE2055
9#define MFRAME_F115800B_0B0A_4795_ABFB_A37BD1DE2055
10
11/* ***************************************************************************************
12 * Include
13 */
14
15//----------------------------------------------------------------------------------------
16#include "./../lang/Memory.h"
17#include "./../lang/Readable.h"
18
19/* ***************************************************************************************
20 * Namespace
21 */
22namespace ufm::lang {
23 class Strings;
24} // namespace ufm::lang
25
26/* ***************************************************************************************
27 * Class/Interface/Struct
28 */
29
34 /* *************************************************************************************
35 * Variable
36 */
37
38 /* *************************************************************************************
39 * Abstract Method
40 */
41
42 /* *************************************************************************************
43 * Construct Method
44 */
45 public:
50 Strings(ufm::lang::Memory memory) noexcept;
51
57 inline Strings(void* pointer, int size) : Strings(Memory(pointer, size)) {
58 return;
59 }
60
65 Strings(const char* str);
66
72 return;
73 }
74
79 Strings(Strings&& other) noexcept = default;
80
85 Strings(Strings& other) noexcept = default;
86
90 virtual ~Strings(void) override;
91
92 /* *************************************************************************************
93 * Operator Method
94 */
95 public:
101 inline Strings& operator+=(const char ch) {
102 return this->append(ch);
103 }
104
110 inline Strings& operator+=(const char* str) {
111 return this->append(str);
112 }
113
121 return this->append(readable);
122 }
123
130 inline Strings& operator+=(int i) {
131 return this->append(i);
132 }
133
140 inline Strings& operator+=(double d) {
141 return this->append(d);
142 }
143
149 inline Strings& operator=(const char* str) {
150 this->set(str);
151 return *this;
152 }
153
159 inline char& operator[](int index) {
160 return *this->pointer<char>(index);
161 }
162
163 /* *************************************************************************************
164 * Override Method - ufm::lang::Data
165 */
166 public:
167 virtual int hashcode(void) const override;
168
169 /* *************************************************************************************
170 * Override Method - ufm::lang::Data
171 */
172 public:
173 virtual int hashdata(void) const override;
174
175 /* *************************************************************************************
176 * Public Method
177 */
178 public:
184 inline bool isEmpty(void) const {
185 return (this->size() == 0);
186 }
187
191 void clear(void);
192
197 int size(void) const;
198
206 int bufferSize(void);
207
214 int scanFormat(const char* format, ...);
215
223 int format(const char* format, va_list arg);
224
232 int format(const char* format, ...);
233
237 void convertUpper(void);
238
242 void convertLower(void);
243
248 Strings toUpper(void) const;
249
254 Strings toLower(void) const;
255
260 Strings clone(void) const;
261
268 Strings clone(int length) const;
269
276 Strings clone(int offset, int length) const;
277
284 int replace(char oldChar, char newChar);
285
291 Strings& append(const char c);
292
298 Strings& append(const char* str);
299
307
314 Strings& append(int value);
315
322 Strings& append(double value);
323
330 Strings& append(bool boolena);
331
337 Strings& set(const char* str);
338
345
352
353 /* *************************************************************************************
354 * Protected Method
355 */
356
357 /* *************************************************************************************
358 * Private Method
359 */
360
361 /* *************************************************************************************
362 * Static Variable
363 */
364
365 /* *************************************************************************************
366 * Static Method
367 */
368 public:
373 static Strings empty(void);
374
382 static Strings format(int bufferSize, const char* format, ...);
383
389 static int getLength(const char* src);
390
396 static int getHashcode(const char* src);
397};
398
399/* ***************************************************************************************
400 * End of file
401 */
402
403#endif /* MFRAME_F115800B_0B0A_4795_ABFB_A37BD1DE2055 */
int length(void) const
取得資料有效長度
Definition Data.h:139
存儲資料的類別,提供動態記憶體管理功能。
Definition Memory.h:44
E * pointer(void) const
模板方法,取得內部指標並轉換為指定型態(不指定偏移)
Definition Pointer.h:398
字串類別,提供字串操作和記憶體管理功能
Definition Strings.h:33
Strings & append(int value)
在字串尾端新增一個整數
Strings(Strings &&other) noexcept=default
複製建構字串物件
Strings & append(double value)
在字串尾端新增一個浮點數
void convertLower(void)
將字串轉換為小寫
Strings(ufm::lang::Memory memory) noexcept
建構字串物件
Strings & operator+=(const char *str)
插入字串至尾端
Definition Strings.h:110
Strings toLower(void) const
取得小寫字串
Strings & operator+=(ufm::lang::Readable &readable)
插入可讀取物件至尾端
Definition Strings.h:120
Strings & append(const char *str)
在字串尾端新增一個字串
int format(const char *format,...)
virtual int hashdata(void) const override
計算資料雜湊值
static Strings format(int bufferSize, const char *format,...)
格式化字串
static int getHashcode(const char *src)
取得字串的哈希碼
int replace(char oldChar, char newChar)
替換字串中的指定字元
Strings toUpper(void) const
取得大寫字串
int hashcodeUpperCast(void)
以全大寫的形式取得哈希碼
Strings clone(void) const
複製字串
Strings & set(const char *str)
設定字串
Strings(Strings &other) noexcept=default
複製建構字串物件
bool isEmpty(void) const
判斷字串是否為空
Definition Strings.h:184
virtual int hashcode(void) const override
返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
Strings & append(ufm::lang::Readable &readable)
在字串尾端新增一個可讀取物件
int size(void) const
取得字串長度
int bufferSize(void)
取的字串原始空間大小
Strings & append(bool boolena)
在字串尾端新增一個布林值
void clear(void)
清除字串內容
Strings & operator=(const char *str)
設定字串
Definition Strings.h:149
Strings & operator+=(double d)
插入浮點數至尾端
Definition Strings.h:140
void convertUpper(void)
將字串轉換為大寫
static Strings empty(void)
取得空字串
Strings & append(const char c)
在字串尾端新增一個字元
Strings & operator+=(const char ch)
插入字元至尾端
Definition Strings.h:101
int hashcodeLowerCast(void)
以全小寫的形式取得哈希碼
int scanFormat(const char *format,...)
從字串中掃描並解析格式化數據
Strings & operator+=(int i)
插入整數至尾端
Definition Strings.h:130
Strings(int length)
建構字串物件
Definition Strings.h:71
virtual ~Strings(void) override
解構字串物件
Strings(const char *str)
建構字串物件
Strings clone(int length) const
int format(const char *format, va_list arg)
Strings(void *pointer, int size)
建構字串物件
Definition Strings.h:57
Strings clone(int offset, int length) const
char & operator[](int index)
取得指定索引的字元
Definition Strings.h:159
static int getLength(const char *src)
取得字串長度
Definition Appendable.h:23
[Interface] 定義資料讀取介面
Definition Readable.h:46