mFrame
載入中...
搜尋中...
無符合項目
Character.h
1
7#ifndef MFRAME_5098703C_A1D7_4D60_9E2D_E5F648A0C629
8#define MFRAME_5098703C_A1D7_4D60_9E2D_E5F648A0C629
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15
16//----------------------------------------------------------------------------------------
17#include "./../lang/Appendable.h"
18#include "./../lang/Strings.h"
19
20/* ***************************************************************************************
21 * Namespace
22 */
23namespace mframe::lang {
24 class Character;
25} // namespace mframe::lang
26
27/* ***************************************************************************************
28 * Class/Interface/Struct/Enum
29 */
31 /* *************************************************************************************
32 * Variable
33 */
34
35 /* *************************************************************************************
36 * Abstract Method
37 */
38
39 /* *************************************************************************************
40 * Construct Method
41 */
42 private:
47 Character(void);
48
49 public:
54 virtual ~Character(void) override;
55
56 /* *************************************************************************************
57 * Operator Method
58 */
59
60 /* *************************************************************************************
61 * Public Method <Override>
62 */
63
64 /* *************************************************************************************
65 * Public Method
66 */
67
68 /* *************************************************************************************
69 * Protected Method
70 */
71
72 /* *************************************************************************************
73 * Private Method
74 */
75
76 /* *************************************************************************************
77 * Static Variable
78 */
79 public:
80 // 控制字符(Control Characters)
81 static constexpr char CHAR_NUL = 0x00;
82 static constexpr char CHAR_SOH = 0x01;
83 static constexpr char CHAR_STX = 0x02;
84 static constexpr char CHAR_ETX = 0x03;
85 static constexpr char CHAR_EOT = 0x04;
86 static constexpr char CHAR_ENQ = 0x05;
87 static constexpr char CHAR_ACK = 0x06;
88 static constexpr char CHAR_BEL = 0x07;
89 static constexpr char CHAR_BS = 0x08;
90 static constexpr char CHAR_TAB = 0x09;
91 static constexpr char CHAR_LF = 0x0A;
92 static constexpr char CHAR_VT = 0x0B;
93 static constexpr char CHAR_FF = 0x0C;
94 static constexpr char CHAR_CR = 0x0D;
95 static constexpr char CHAR_SO = 0x0E;
96 static constexpr char CHAR_SI = 0x0F;
97 static constexpr char CHAR_DLE = 0x10;
98 static constexpr char CHAR_DC1 = 0x11;
99 static constexpr char CHAR_DC2 = 0x12;
100 static constexpr char CHAR_DC3 = 0x13;
101 static constexpr char CHAR_DC4 = 0x14;
102 static constexpr char CHAR_NAK = 0x15;
103 static constexpr char CHAR_SYN = 0x16;
104 static constexpr char CHAR_ETB = 0x17;
105 static constexpr char CHAR_CAN = 0x18;
106 static constexpr char CHAR_EM = 0x19;
107 static constexpr char CHAR_SUB = 0x1A;
108 static constexpr char CHAR_ESC = 0x1B;
109 static constexpr char CHAR_FS = 0x1C;
110 static constexpr char CHAR_GS = 0x1D;
111 static constexpr char CHAR_RS = 0x1E;
112 static constexpr char CHAR_US = 0x1F;
114 // 符號字符(Symbol Characters)
115 static constexpr char CHAR_SPACE = 0x20;
116 static constexpr char CHAR_EXCLAM = 0x21;
117 static constexpr char CHAR_QUOTE = 0x22;
118 static constexpr char CHAR_HASH = 0x23;
119 static constexpr char CHAR_DOLLAR = 0x24;
120 static constexpr char CHAR_PERCENT = 0x25;
121 static constexpr char CHAR_AMPERSAND = 0x26;
122 static constexpr char CHAR_APOSTROPHE = 0x27;
123 static constexpr char CHAR_LEFT_PAREN = 0x28;
124 static constexpr char CHAR_RIGHT_PAREN = 0x29;
125 static constexpr char CHAR_ASTERISK = 0x2A;
126 static constexpr char CHAR_PLUS = 0x2B;
127 static constexpr char CHAR_COMMA = 0x2C;
128 static constexpr char CHAR_MINUS = 0x2D;
129 static constexpr char CHAR_PERIOD = 0x2E;
130 static constexpr char CHAR_SLASH = 0x2F;
131 static constexpr char CHAR_COLON = 0x3A;
132 static constexpr char CHAR_SEMICOLON = 0x3B;
133 static constexpr char CHAR_LESS_THAN = 0x3C;
134 static constexpr char CHAR_EQUAL = 0x3D;
135 static constexpr char CHAR_GREATER_THAN = 0x3E;
136 static constexpr char CHAR_QUESTION = 0x3F;
137 static constexpr char CHAR_AT = 0x40;
138 static constexpr char CHAR_LEFT_BRACKET = 0x5B;
139 static constexpr char CHAR_BACKSLASH = 0x5C;
140 static constexpr char CHAR_RIGHT_BRACKET = 0x5D;
141 static constexpr char CHAR_CARET = 0x5E;
142 static constexpr char CHAR_UNDERSCORE = 0x5F;
143 static constexpr char CHAR_GRAVE = 0x60;
144 static constexpr char CHAR_LEFT_CURLY = 0x7B;
145 static constexpr char CHAR_VERTICAL_BAR = 0x7C;
146 static constexpr char CHAR_RIGHT_CURLY = 0x7D;
147 static constexpr char CHAR_TILDE = 0x7E;
149 /* *************************************************************************************
150 * Static Method
151 */
152 public:
160 static bool inline isNextSymbol(char c) {
161 return ((c == ' ') ||
162 (c == Character::CHAR_TAB) ||
163 (c == Character::CHAR_CR) ||
164 (c == Character::CHAR_LF) ||
165 (c == Character::CHAR_NUL));
166 }
167
175 static bool inline isNextLineSymbol(char c) {
176 return ((c == Character::CHAR_CR) ||
177 (c == Character::CHAR_LF) ||
178 (c == Character::CHAR_NUL));
179 }
180
188 static bool inline isHexChar(char c) {
189 if ((c >= '0') && (c <= '9'))
190 return true;
191
192 if ((c >= 'a') && (c <= 'f'))
193 return true;
194
195 if ((c >= 'A') && (c <= 'F'))
196 return true;
197
198 return false;
199 }
200
211 static bool inline isNumberChar(char c) {
212 return ((c >= '0') && (c <= '9'));
213 }
214
221 static char toUpperCase(char ch);
222
230 static int toUpperCase(const char* src, char* dst);
231
240 static int toUpperCase(const char* src, char* dst, int length);
241
248 static char toLowerCase(char ch);
249
257 static int toLowerCase(const char* src, char* dst);
258
267 static int toLowerCase(const char* src, char* dst, int length);
268
278 static bool hexCharToChar(char& result, char highChar, char lowChar);
279
288 static bool hexCharToChar(char& result, char source);
289
298 static bool compare(char src1, char src2);
299
308 static bool compare(const char* str1, const char* str2);
309
318 static bool compare(const char* str1, const char* str2, int length);
319
328 static bool compareIgnoreCast(char src1, char src2);
329
338 static bool compareIgnoreCast(const char* src1, char const* src2);
339
349 static bool compareIgnoreCast(const char* src1, char const* src2, int length);
350
357 static int length(const char* src);
358
366 static inline bool isHexString(const mframe::lang::Data& source);
367
377 const mframe::lang::Data& source);
378};
379
380/* ***************************************************************************************
381 * End of file
382 */
383
384#endif /* MFRAME_5098703C_A1D7_4D60_9E2D_E5F648A0C629 */
Definition Character.h:30
static constexpr char CHAR_ETB
Definition Character.h:104
static constexpr char CHAR_CAN
Definition Character.h:105
static constexpr char CHAR_DC4
Definition Character.h:101
static constexpr char CHAR_LEFT_CURLY
Definition Character.h:144
static bool isHexChar(char c)
判斷字元是否滿足Hex字元區間。
Definition Character.h:188
static constexpr char CHAR_NUL
Definition Character.h:81
static constexpr char CHAR_QUESTION
Definition Character.h:136
static bool isNumberChar(char c)
判斷字元是否為數字
Definition Character.h:211
static constexpr char CHAR_PLUS
Definition Character.h:126
static constexpr char CHAR_ETX
Definition Character.h:84
static constexpr char CHAR_BEL
Definition Character.h:88
static constexpr char CHAR_GS
Definition Character.h:110
static constexpr char CHAR_AMPERSAND
Definition Character.h:121
static int toUpperCase(const char *src, char *dst)
將字串轉換為大寫,當遇到'\0'時停止。
static bool compareIgnoreCast(char src1, char src2)
字元比較且忽略大小寫
static constexpr char CHAR_EM
Definition Character.h:106
static constexpr char CHAR_QUOTE
Definition Character.h:117
static constexpr char CHAR_AT
Definition Character.h:137
static constexpr char CHAR_PERCENT
Definition Character.h:120
static constexpr char CHAR_VERTICAL_BAR
Definition Character.h:145
static bool hexCharToChar(char &result, char highChar, char lowChar)
將16進制文字轉換至數值。
static constexpr char CHAR_COLON
Definition Character.h:131
static constexpr char CHAR_RIGHT_CURLY
Definition Character.h:146
static int toUpperCase(const char *src, char *dst, int length)
將字串轉換為大寫,當遇到'\0'或滿足最大轉換長度時停止。
static constexpr char CHAR_SPACE
Definition Character.h:115
static constexpr char CHAR_VT
Definition Character.h:92
static constexpr char CHAR_SI
Definition Character.h:96
static constexpr char CHAR_MINUS
Definition Character.h:128
static constexpr char CHAR_DC3
Definition Character.h:100
static bool isNextLineSymbol(char c)
Definition Character.h:175
static constexpr char CHAR_SEMICOLON
Definition Character.h:132
static constexpr char CHAR_ENQ
Definition Character.h:86
static constexpr char CHAR_EOT
Definition Character.h:85
static bool compare(const char *str1, const char *str2)
字元比較
static constexpr char CHAR_PERIOD
Definition Character.h:129
static constexpr char CHAR_SO
Definition Character.h:95
static constexpr char CHAR_LF
Definition Character.h:91
static int toLowerCase(const char *src, char *dst, int length)
將字串轉換為小寫,當遇到'\0'或滿足最大轉換長度時停止。
static constexpr char CHAR_EXCLAM
Definition Character.h:116
static bool compare(const char *str1, const char *str2, int length)
字元比較
static constexpr char CHAR_APOSTROPHE
Definition Character.h:122
static bool compareIgnoreCast(const char *src1, char const *src2)
比較字符串且忽略大小寫
static constexpr char CHAR_SLASH
Definition Character.h:130
static bool compareIgnoreCast(const char *src1, char const *src2, int length)
比較字符串且忽略大小寫,限定字符串最大長度為length
static constexpr char CHAR_DLE
Definition Character.h:97
static constexpr char CHAR_HASH
Definition Character.h:118
static constexpr char CHAR_GRAVE
Definition Character.h:143
static int length(const char *src)
取得字符串長度,當遇到'\0'時返回計數
static constexpr char CHAR_CR
Definition Character.h:94
static constexpr char CHAR_BS
Definition Character.h:89
static constexpr char CHAR_TILDE
Definition Character.h:147
static constexpr char CHAR_SUB
Definition Character.h:107
static constexpr char CHAR_RIGHT_BRACKET
Definition Character.h:140
static constexpr char CHAR_FS
Definition Character.h:109
static constexpr char CHAR_BACKSLASH
Definition Character.h:139
static int toLowerCase(const char *src, char *dst)
將字串轉換為小寫,當遇到'\0'時停止。
static bool hexCharToChar(char &result, char source)
將16進制文字轉換至數值。
static constexpr char CHAR_LESS_THAN
Definition Character.h:133
static constexpr char CHAR_SOH
Definition Character.h:82
static constexpr char CHAR_EQUAL
Definition Character.h:134
static constexpr char CHAR_COMMA
Definition Character.h:127
static constexpr char CHAR_ASTERISK
Definition Character.h:125
static constexpr char CHAR_CARET
Definition Character.h:141
static constexpr char CHAR_STX
Definition Character.h:83
static constexpr char CHAR_RS
Definition Character.h:111
static constexpr char CHAR_TAB
Definition Character.h:90
static constexpr char CHAR_NAK
Definition Character.h:102
static constexpr char CHAR_RIGHT_PAREN
Definition Character.h:124
static constexpr char CHAR_GREATER_THAN
Definition Character.h:135
static bool isNextSymbol(char c)
Definition Character.h:160
static constexpr char CHAR_DC2
Definition Character.h:99
static constexpr char CHAR_US
Definition Character.h:112
static constexpr char CHAR_DOLLAR
Definition Character.h:119
static constexpr char CHAR_ACK
Definition Character.h:87
static constexpr char CHAR_SYN
Definition Character.h:103
static constexpr char CHAR_UNDERSCORE
Definition Character.h:142
static char toUpperCase(char ch)
將字元轉換為大寫
static bool parseHexString(mframe::lang::Data &result, const mframe::lang::Data &source)
將二進制字串轉換為位元組資料。
static constexpr char CHAR_LEFT_BRACKET
Definition Character.h:138
static char toLowerCase(char ch)
將字元轉換為小寫。
static bool isHexString(const mframe::lang::Data &source)
判斷目標是否為16進制字串。
static bool compare(char src1, char src2)
字元比較
static constexpr char CHAR_ESC
Definition Character.h:108
static constexpr char CHAR_FF
Definition Character.h:93
static constexpr char CHAR_DC1
Definition Character.h:98
virtual ~Character(void) override
Destroy the Character object.
static constexpr char CHAR_LEFT_PAREN
Definition Character.h:123
Definition Data.h:30
Definition Object.h:34
Definition Appendable.h:23