STRING_UTILS

Constant STRING_UTILS 

Source
pub const STRING_UTILS: &str = "// stdlib/string_utils.aether\n// Aether \u{5b57}\u{7b26}\u{4e32}\u{5de5}\u{5177}\u{5e93}\n// \u{63d0}\u{4f9b}\u{4e30}\u{5bcc}\u{7684}\u{5b57}\u{7b26}\u{4e32}\u{64cd}\u{4f5c}\u{51fd}\u{6570}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{4fee}\u{526a} ====================\n\n// \u{79fb}\u{9664}\u{5b57}\u{7b26}\u{4e32}\u{4e24}\u{7aef}\u{7684}\u{7a7a}\u{767d}\u{5b57}\u{7b26}\nFunc STR_TRIM(STR) {\n    Set RESULT STR\n    Set LEN LEN(STR)\n    \n    If (LEN == 0) {\n        Return RESULT\n    }\n    \n    // \u{67e5}\u{627e}\u{7b2c}\u{4e00}\u{4e2a}\u{975e}\u{7a7a}\u{767d}\u{5b57}\u{7b26}\n    Set START 0\n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        If (CHAR != \" \" && CHAR != \"\\t\" && CHAR != \"\\n\" && CHAR != \"\\r\") {\n            Set START I\n            Break\n        }\n        Set I (I + 1)\n    }\n    \n    // \u{5982}\u{679c}\u{5168}\u{662f}\u{7a7a}\u{767d}\u{5b57}\u{7b26}\n    If (I == LEN) {\n        Return \"\"\n    }\n    \n    // \u{67e5}\u{627e}\u{6700}\u{540e}\u{4e00}\u{4e2a}\u{975e}\u{7a7a}\u{767d}\u{5b57}\u{7b26}\n    Set END (LEN - 1)\n    Set J (LEN - 1)\n    While (J >= 0) {\n        Set CHAR STRSLICE(STR, J, J + 1)\n        If (CHAR != \" \" && CHAR != \"\\t\" && CHAR != \"\\n\" && CHAR != \"\\r\") {\n            Set END J\n            Break\n        }\n        Set J (J - 1)\n    }\n    \n    Return STRSLICE(STR, START, END + 1)\n}\n\n// \u{79fb}\u{9664}\u{5b57}\u{7b26}\u{4e32}\u{5de6}\u{4fa7}\u{7a7a}\u{767d}\u{5b57}\u{7b26}\nFunc STR_TRIM_LEFT(STR) {\n    Set LEN LEN(STR)\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        If (CHAR != \" \" && CHAR != \"\\t\" && CHAR != \"\\n\" && CHAR != \"\\r\") {\n            Break\n        }\n        Set I (I + 1)\n    }\n    \n    Return STRSLICE(STR, I, LEN)\n}\n\n// \u{79fb}\u{9664}\u{5b57}\u{7b26}\u{4e32}\u{53f3}\u{4fa7}\u{7a7a}\u{767d}\u{5b57}\u{7b26}\nFunc STR_TRIM_RIGHT(STR) {\n    Set LEN LEN(STR)\n    Set I (LEN - 1)\n    \n    While (I >= 0) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        If (CHAR != \" \" && CHAR != \"\\t\" && CHAR != \"\\n\" && CHAR != \"\\r\") {\n            Break\n        }\n        Set I (I - 1)\n    }\n    \n    Return STRSLICE(STR, 0, I + 1)\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{586b}\u{5145} ====================\n\n// \u{5728}\u{5b57}\u{7b26}\u{4e32}\u{5de6}\u{4fa7}\u{586b}\u{5145}\u{5b57}\u{7b26}\u{5230}\u{6307}\u{5b9a}\u{957f}\u{5ea6}\nFunc STR_PAD_LEFT(STR, length, pad_char) {\n    Set CURRENT_LEN LEN(STR)\n    \n    If (CURRENT_LEN >= length) {\n        Return STR\n    }\n    \n    Set PAD_COUNT (length - CURRENT_LEN)\n    Set RESULT \"\"\n    Set I 0\n    \n    While (I < PAD_COUNT) {\n        Set RESULT (RESULT + pad_char)\n        Set I (I + 1)\n    }\n    \n    Return (RESULT + STR)\n}\n\n// \u{5728}\u{5b57}\u{7b26}\u{4e32}\u{53f3}\u{4fa7}\u{586b}\u{5145}\u{5b57}\u{7b26}\u{5230}\u{6307}\u{5b9a}\u{957f}\u{5ea6}\nFunc STR_PAD_RIGHT(STR, length, pad_char) {\n    Set CURRENT_LEN LEN(STR)\n    \n    If (CURRENT_LEN >= length) {\n        Return STR\n    }\n    \n    Set PAD_COUNT (length - CURRENT_LEN)\n    Set RESULT STR\n    Set I 0\n    \n    While (I < PAD_COUNT) {\n        Set RESULT (RESULT + pad_char)\n        Set I (I + 1)\n    }\n    \n    Return RESULT\n}\n\n// \u{5728}\u{5b57}\u{7b26}\u{4e32}\u{4e24}\u{4fa7}\u{586b}\u{5145}\u{5b57}\u{7b26}\u{5230}\u{6307}\u{5b9a}\u{957f}\u{5ea6}\u{ff08}\u{5c45}\u{4e2d}\u{ff09}\nFunc STR_PAD_CENTER(STR, length, pad_char) {\n    Set CURRENT_LEN LEN(STR)\n    \n    If (CURRENT_LEN >= length) {\n        Return STR\n    }\n    \n    Set TOTAL_PAD (length - CURRENT_LEN)\n    Set LEFT_PAD (TOTAL_PAD / 2)\n    Set RIGHT_PAD (TOTAL_PAD - LEFT_PAD)\n    \n    Set RESULT \"\"\n    Set I 0\n    \n    // \u{5de6}\u{4fa7}\u{586b}\u{5145}\n    While (I < LEFT_PAD) {\n        Set RESULT (RESULT + pad_char)\n        Set I (I + 1)\n    }\n    \n    Set RESULT (RESULT + STR)\n    Set I 0\n    \n    // \u{53f3}\u{4fa7}\u{586b}\u{5145}\n    While (I < RIGHT_PAD) {\n        Set RESULT (RESULT + pad_char)\n        Set I (I + 1)\n    }\n    \n    Return RESULT\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{91cd}\u{590d} ====================\n\n// \u{91cd}\u{590d}\u{5b57}\u{7b26}\u{4e32} n \u{6b21}\nFunc STR_REPEAT(STR, COUNT) {\n    If (COUNT <= 0) {\n        Return \"\"\n    }\n    \n    Set RESULT \"\"\n    Set I 0\n    \n    While (I < COUNT) {\n        Set RESULT (RESULT + STR)\n        Set I (I + 1)\n    }\n    \n    Return RESULT\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{53cd}\u{8f6c} ====================\n\n// \u{53cd}\u{8f6c}\u{5b57}\u{7b26}\u{4e32}\nFunc STR_REVERSE(STR) {\n    Set LEN LEN(STR)\n    Set RESULT \"\"\n    Set I (LEN - 1)\n    \n    While (I >= 0) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        Set RESULT (RESULT + CHAR)\n        Set I (I - 1)\n    }\n    \n    Return RESULT\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{67e5}\u{8be2} ====================\n\n// \u{68c0}\u{67e5}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{5305}\u{542b}\u{5b50}\u{4e32}\nFunc STR_CONTAINS(STR, substr) {\n    Set STR_LEN LEN(STR)\n    Set SUB_LEN LEN(substr)\n    \n    If (SUB_LEN == 0) {\n        Return True\n    }\n    \n    If (SUB_LEN > STR_LEN) {\n        Return False\n    }\n    \n    Set MAX_POS (STR_LEN - SUB_LEN)\n    Set I 0\n    \n    While (I <= MAX_POS) {\n        Set SLICE STRSLICE(STR, I, I + SUB_LEN)\n        If (SLICE == substr) {\n            Return True\n        }\n        Set I (I + 1)\n    }\n    \n    Return False\n}\n\n// \u{68c0}\u{67e5}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{4ee5}\u{6307}\u{5b9a}\u{524d}\u{7f00}\u{5f00}\u{59cb}\nFunc STR_STARTS_WITH(STR, prefix) {\n    Set STR_LEN LEN(STR)\n    Set PREFIX_LEN LEN(prefix)\n    \n    If (PREFIX_LEN > STR_LEN) {\n        Return False\n    }\n    \n    Set SLICE STRSLICE(STR, 0, PREFIX_LEN)\n    Return (SLICE == prefix)\n}\n\n// \u{68c0}\u{67e5}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{4ee5}\u{6307}\u{5b9a}\u{540e}\u{7f00}\u{7ed3}\u{675f}\nFunc STR_ENDS_WITH(STR, suffix) {\n    Set STR_LEN LEN(STR)\n    Set SUFFIX_LEN LEN(suffix)\n    \n    If (SUFFIX_LEN > STR_LEN) {\n        Return False\n    }\n    \n    Set START (STR_LEN - SUFFIX_LEN)\n    Set SLICE STRSLICE(STR, START, STR_LEN)\n    Return (SLICE == suffix)\n}\n\n// \u{67e5}\u{627e}\u{5b50}\u{4e32}\u{9996}\u{6b21}\u{51fa}\u{73b0}\u{7684}\u{4f4d}\u{7f6e}\u{ff0c}\u{672a}\u{627e}\u{5230}\u{8fd4}\u{56de} -1\nFunc STR_INDEX_OF(STR, substr) {\n    Set STR_LEN LEN(STR)\n    Set SUB_LEN LEN(substr)\n    \n    If (SUB_LEN == 0) {\n        Return 0\n    }\n    \n    If (SUB_LEN > STR_LEN) {\n        Return -1\n    }\n    \n    Set MAX_POS (STR_LEN - SUB_LEN)\n    Set I 0\n    \n    While (I <= MAX_POS) {\n        Set SLICE STRSLICE(STR, I, I + SUB_LEN)\n        If (SLICE == substr) {\n            Return I\n        }\n        Set I (I + 1)\n    }\n    \n    Return -1\n}\n\n// \u{67e5}\u{627e}\u{5b50}\u{4e32}\u{6700}\u{540e}\u{4e00}\u{6b21}\u{51fa}\u{73b0}\u{7684}\u{4f4d}\u{7f6e}\u{ff0c}\u{672a}\u{627e}\u{5230}\u{8fd4}\u{56de} -1\nFunc STR_LAST_INDEX_OF(STR, substr) {\n    Set STR_LEN LEN(STR)\n    Set SUB_LEN LEN(substr)\n    \n    If (SUB_LEN == 0) {\n        Return STR_LEN\n    }\n    \n    If (SUB_LEN > STR_LEN) {\n        Return -1\n    }\n    \n    Set I (STR_LEN - SUB_LEN)\n    \n    While (I >= 0) {\n        Set SLICE STRSLICE(STR, I, I + SUB_LEN)\n        If (SLICE == substr) {\n            Return I\n        }\n        Set I (I - 1)\n    }\n    \n    Return -1\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{66ff}\u{6362} ====================\n\n// \u{66ff}\u{6362}\u{5b57}\u{7b26}\u{4e32}\u{4e2d}\u{7684}\u{6240}\u{6709}\u{5339}\u{914d}\u{9879}\nFunc STR_REPLACE_ALL(STR, old_str, NEW_STR) {\n    Set STR_LEN LEN(STR)\n    Set OLD_LEN LEN(old_str)\n    \n    If (OLD_LEN == 0) {\n        Return STR\n    }\n    \n    Set RESULT \"\"\n    Set I 0\n    \n    While (I < STR_LEN) {\n        If ((I + OLD_LEN) <= STR_LEN) {\n            Set SLICE STRSLICE(STR, I, I + OLD_LEN)\n            If (SLICE == old_str) {\n                Set RESULT (RESULT + NEW_STR)\n                Set I (I + OLD_LEN)\n            } Else {\n                Set CHAR STRSLICE(STR, I, I + 1)\n                Set RESULT (RESULT + CHAR)\n                Set I (I + 1)\n            }\n        } Else {\n            Set CHAR STRSLICE(STR, I, I + 1)\n            Set RESULT (RESULT + CHAR)\n            Set I (I + 1)\n        }\n    }\n    \n    Return RESULT\n}\n\n// \u{66ff}\u{6362}\u{5b57}\u{7b26}\u{4e32}\u{4e2d}\u{7684}\u{7b2c}\u{4e00}\u{4e2a}\u{5339}\u{914d}\u{9879}\nFunc STR_REPLACE_FIRST(STR, old_str, NEW_STR) {\n    Set POS STR_INDEX_OF(STR, old_str)\n    \n    If (POS == -1) {\n        Return STR\n    }\n    \n    Set OLD_LEN LEN(old_str)\n    Set BEFORE STRSLICE(STR, 0, POS)\n    Set AFTER STRSLICE(STR, POS + OLD_LEN, LEN(STR))\n    \n    Return (BEFORE + NEW_STR + AFTER)\n}\n\n// ==================== \u{5927}\u{5c0f}\u{5199}\u{8f6c}\u{6362} ====================\n\n// \u{8f6c}\u{6362}\u{4e3a}\u{5927}\u{5199}\u{ff08}\u{4ec5}\u{9650} ASCII \u{5b57}\u{7b26}\u{ff09}\nFunc STR_TO_UPPER(STR) {\n    Set LEN LEN(STR)\n    Set RESULT \"\"\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        // ASCII: a-z (97-122) -> A-Z (65-90)\n        If (CHAR >= \"a\" && CHAR <= \"z\") {\n            // \u{8fd9}\u{91cc}\u{9700}\u{8981}\u{5b57}\u{7b26}\u{4ee3}\u{7801}\u{64cd}\u{4f5c}\u{ff0c}\u{6682}\u{65f6}\u{4f7f}\u{7528}\u{7b80}\u{5355}\u{6620}\u{5c04}\n            Set UPPER_CHAR CHAR\n            If (CHAR == \"a\") { Set UPPER_CHAR \"A\" }\n            If (CHAR == \"b\") { Set UPPER_CHAR \"B\" }\n            If (CHAR == \"c\") { Set UPPER_CHAR \"C\" }\n            If (CHAR == \"d\") { Set UPPER_CHAR \"D\" }\n            If (CHAR == \"e\") { Set UPPER_CHAR \"E\" }\n            If (CHAR == \"f\") { Set UPPER_CHAR \"F\" }\n            If (CHAR == \"g\") { Set UPPER_CHAR \"G\" }\n            If (CHAR == \"h\") { Set UPPER_CHAR \"H\" }\n            If (CHAR == \"I\") { Set UPPER_CHAR \"I\" }\n            If (CHAR == \"j\") { Set UPPER_CHAR \"J\" }\n            If (CHAR == \"k\") { Set UPPER_CHAR \"K\" }\n            If (CHAR == \"l\") { Set UPPER_CHAR \"L\" }\n            If (CHAR == \"m\") { Set UPPER_CHAR \"M\" }\n            If (CHAR == \"n\") { Set UPPER_CHAR \"N\" }\n            If (CHAR == \"o\") { Set UPPER_CHAR \"O\" }\n            If (CHAR == \"p\") { Set UPPER_CHAR \"P\" }\n            If (CHAR == \"q\") { Set UPPER_CHAR \"Q\" }\n            If (CHAR == \"r\") { Set UPPER_CHAR \"R\" }\n            If (CHAR == \"s\") { Set UPPER_CHAR \"S\" }\n            If (CHAR == \"t\") { Set UPPER_CHAR \"T\" }\n            If (CHAR == \"u\") { Set UPPER_CHAR \"U\" }\n            If (CHAR == \"v\") { Set UPPER_CHAR \"V\" }\n            If (CHAR == \"w\") { Set UPPER_CHAR \"W\" }\n            If (CHAR == \"x\") { Set UPPER_CHAR \"X\" }\n            If (CHAR == \"y\") { Set UPPER_CHAR \"Y\" }\n            If (CHAR == \"z\") { Set UPPER_CHAR \"Z\" }\n            Set RESULT (RESULT + UPPER_CHAR)\n        } Else {\n            Set RESULT (RESULT + CHAR)\n        }\n        Set I (I + 1)\n    }\n    \n    Return RESULT\n}\n\n// \u{8f6c}\u{6362}\u{4e3a}\u{5c0f}\u{5199}\u{ff08}\u{4ec5}\u{9650} ASCII \u{5b57}\u{7b26}\u{ff09}\nFunc STR_TO_LOWER(STR) {\n    Set LEN LEN(STR)\n    Set RESULT \"\"\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        // ASCII: A-Z (65-90) -> a-z (97-122)\n        If (CHAR >= \"A\" && CHAR <= \"Z\") {\n            Set LOWER_CHAR CHAR\n            If (CHAR == \"A\") { Set LOWER_CHAR \"a\" }\n            If (CHAR == \"B\") { Set LOWER_CHAR \"b\" }\n            If (CHAR == \"C\") { Set LOWER_CHAR \"c\" }\n            If (CHAR == \"D\") { Set LOWER_CHAR \"d\" }\n            If (CHAR == \"E\") { Set LOWER_CHAR \"e\" }\n            If (CHAR == \"F\") { Set LOWER_CHAR \"f\" }\n            If (CHAR == \"G\") { Set LOWER_CHAR \"g\" }\n            If (CHAR == \"H\") { Set LOWER_CHAR \"h\" }\n            If (CHAR == \"I\") { Set LOWER_CHAR \"I\" }\n            If (CHAR == \"J\") { Set LOWER_CHAR \"j\" }\n            If (CHAR == \"K\") { Set LOWER_CHAR \"k\" }\n            If (CHAR == \"L\") { Set LOWER_CHAR \"l\" }\n            If (CHAR == \"M\") { Set LOWER_CHAR \"m\" }\n            If (CHAR == \"N\") { Set LOWER_CHAR \"n\" }\n            If (CHAR == \"O\") { Set LOWER_CHAR \"o\" }\n            If (CHAR == \"P\") { Set LOWER_CHAR \"p\" }\n            If (CHAR == \"Q\") { Set LOWER_CHAR \"q\" }\n            If (CHAR == \"R\") { Set LOWER_CHAR \"r\" }\n            If (CHAR == \"S\") { Set LOWER_CHAR \"s\" }\n            If (CHAR == \"T\") { Set LOWER_CHAR \"t\" }\n            If (CHAR == \"U\") { Set LOWER_CHAR \"u\" }\n            If (CHAR == \"V\") { Set LOWER_CHAR \"v\" }\n            If (CHAR == \"W\") { Set LOWER_CHAR \"w\" }\n            If (CHAR == \"X\") { Set LOWER_CHAR \"x\" }\n            If (CHAR == \"Y\") { Set LOWER_CHAR \"y\" }\n            If (CHAR == \"Z\") { Set LOWER_CHAR \"z\" }\n            Set RESULT (RESULT + LOWER_CHAR)\n        } Else {\n            Set RESULT (RESULT + CHAR)\n        }\n        Set I (I + 1)\n    }\n    \n    Return RESULT\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{5206}\u{5272} ====================\n\n// \u{6309}\u{5206}\u{9694}\u{7b26}\u{5206}\u{5272}\u{5b57}\u{7b26}\u{4e32}\u{4e3a}\u{6570}\u{7ec4}\nFunc STR_SPLIT(STR, DELIMITER) {\n    Set RESULT []\n    Set STR_LEN_ LEN(STR)\n    Set DELIM_LEN LEN(DELIMITER)\n    \n    If (DELIM_LEN == 0) {\n        // \u{5206}\u{5272}\u{6bcf}\u{4e2a}\u{5b57}\u{7b26}\n        Set I 0\n        While (I < STR_LEN_) {\n            Set CHAR STRSLICE(STR, I, I + 1)\n            Set RESULT PUSH(RESULT, CHAR)\n            Set I (I + 1)\n        }\n        Return RESULT\n    }\n    \n    Set START 0\n    Set I 0\n    \n    While (I <= (STR_LEN_ - DELIM_LEN)) {\n        Set SLICE STRSLICE(STR, I, I + DELIM_LEN)\n        If (SLICE == DELIMITER) {\n            Set PART STRSLICE(STR, START, I)\n            Set RESULT PUSH(RESULT, PART)\n            Set I (I + DELIM_LEN)\n            Set START I\n        } Else {\n            Set I (I + 1)\n        }\n    }\n    \n    // \u{6dfb}\u{52a0}\u{6700}\u{540e}\u{4e00}\u{90e8}\u{5206}\n    Set LAST_PART STRSLICE(STR, START, STR_LEN_)\n    Set RESULT PUSH(RESULT, LAST_PART)\n    \n    Return RESULT\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{8fde}\u{63a5} ====================\n\n// \u{7528}\u{5206}\u{9694}\u{7b26}\u{8fde}\u{63a5}\u{6570}\u{7ec4}\u{5143}\u{7d20}\u{4e3a}\u{5b57}\u{7b26}\u{4e32}\nFunc STR_JOIN(ARR, DELIMITER) {\n    Set LEN LEN(ARR)\n    \n    If (LEN == 0) {\n        Return \"\"\n    }\n    \n    Set RESULT TO_STRING(ARR[0])\n    Set I 1\n    \n    While (I < LEN) {\n        Set RESULT (RESULT + DELIMITER + TO_STRING(ARR[I]))\n        Set I (I + 1)\n    }\n    \n    Return RESULT\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{68c0}\u{67e5} ====================\n\n// \u{68c0}\u{67e5}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{4e3a}\u{7a7a}\nFunc STR_IS_EMPTY(STR) {\n    Return (LEN(STR) == 0)\n}\n\n// \u{68c0}\u{67e5}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{4ec5}\u{5305}\u{542b}\u{7a7a}\u{767d}\u{5b57}\u{7b26}\nFunc STR_IS_BLANK(STR) {\n    Set TRIMMED STR_TRIM(STR)\n    Return (LEN(TRIMMED) == 0)\n}\n\n// \u{68c0}\u{67e5}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{4e3a}\u{6570}\u{5b57}\nFunc STR_IS_NUMERIC(STR) {\n    Set LEN LEN(STR)\n    \n    If (LEN == 0) {\n        Return False\n    }\n    \n    Set I 0\n    Set HAS_DOT False\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        \n        If (CHAR == \"-\" || CHAR == \"+\") {\n            If (I != 0) {\n                Return False\n            }\n        } Elif (CHAR == \".\") {\n            If (HAS_DOT) {\n                Return False\n            }\n            Set HAS_DOT True\n        } Elif (CHAR < \"0\" || CHAR > \"9\") {\n            Return False\n        }\n        \n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// \u{68c0}\u{67e5}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{4ec5}\u{5305}\u{542b}\u{5b57}\u{6bcd}\nFunc STR_IS_ALPHA(STR) {\n    Set LEN LEN(STR)\n    \n    If (LEN == 0) {\n        Return False\n    }\n    \n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        If (!((CHAR >= \"a\" && CHAR <= \"z\") || (CHAR >= \"A\" && CHAR <= \"Z\"))) {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// \u{68c0}\u{67e5}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{4ec5}\u{5305}\u{542b}\u{5b57}\u{6bcd}\u{548c}\u{6570}\u{5b57}\nFunc STR_IS_ALPHANUMERIC(STR) {\n    Set LEN LEN(STR)\n    \n    If (LEN == 0) {\n        Return False\n    }\n    \n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        Set IS_ALPHA ((CHAR >= \"a\" && CHAR <= \"z\") || (CHAR >= \"A\" && CHAR <= \"Z\"))\n        Set IS_DIGIT (CHAR >= \"0\" && CHAR <= \"9\")\n        If (!(IS_ALPHA || IS_DIGIT)) {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n";
Expand description

字符串工具库