備註
社區興趣小組現在已從 Yammer 轉移到 Microsoft Viva Engage。 若要加入 Viva Engage 社群並參與最新的討論,請填寫 [ 要求存取財務和營運 Viva Engage 社群 表單 」 ,並選擇您要加入的社群。
本文說明字串執行階段函式。
火柴
在另一個字串中搜尋字串或運算式。
int match(str pattern, str text)
參數
| 參數 | Description |
|---|---|
| 模式 | 要搜尋的字串或運算式。 |
| 收發簡訊 | 要搜尋的字串。 |
返回值
1 如果圖案位於字符串中;否則為 0 (零)。
備註
搜尋不區分大小寫。 下列特殊字元可用來建立 模式 參數的模式。
\:反斜線 (\) 會取消或轉義特殊字元的特殊處理,以便特殊字元可以像一般字母一樣比對。 一對反斜線被翻譯成一個非特殊反斜線。 範例:
- 匹配(“ab$cd”,“ab$cd”); 傳回 0。
- 匹配(“ab\$cd”,“ab$cd”); 傳回 0。 反斜線沒有逃逸。
- 匹配(“ab\\$cd”,“ab$cd”); 傳回 1。 反斜線和美元符號會逸出。
< 或 ^:表達式開頭的左尖括號 (<) 或抑揚符 (^) 用於匹配行首。 範例:
- match(“<abc”,“abcdef”); 傳回 1。
- match(“<abc”,“defabc”); 傳回 0。
- 匹配(“^abc”,“abcdef”); 傳回 1。
- 匹配(“^abc”,“defabc”); 傳回 0。
> 或 $:運算式結尾的直角括號 (>) 或美元符號 ($) 用於比對行尾。 範例:
- match(“abc>”,“abcdef”); 傳回 0。
- match(“abc>”,“defabc”); 傳回 1。
? 或。:問號 (?) 或句點 (.) 匹配相同位置的任何一個字符。 範例:
- 匹配(“abc.def”,“abc#def”); 傳回 1。
- 匹配(“colou?r”,“colouXr”); 傳回 1。
:x:冒號 (:) 指定要比對的字元群組,如緊接後面的字元所示。
:a:將匹配項設置為字母。 範例:
- 匹配(“ab:acd”,“ab#cd”); 傳回 0。
- 匹配(“ab:acd”,“abxyzcd”); 傳回 0。
- 匹配(“ab:acd”,“abxcd”); 傳回 1。
:d:將相符設定為數字字元。 範例:
- 匹配(“ab:dcd”,“ab3cd”); 傳回 1。
- 匹配(“ab:dcd”,“ab123cd”); 傳回 0。
- 匹配(“ab:dcd”,“abcd”); 傳回 0。
:n:將比對設定為英數字元。 範例:
- match(“ab:ncd”,“ab%cd”); 傳回 0。
- 匹配(“ab:ncd”,“ab9cd”); 傳回 1。
- 匹配(“ab:ncd”,“abXcd”); 傳回 1。
:SPACE:SPACE 是空格字元 (“ ”)。 將比對設定為空白、製表和控制字元 (例如 Enter (換行)。 範例:
- 匹配(“ab:cd”,“ab cd”); 傳回 1。
- match(“ab: cd”,“ab\ncd”); 傳回 1。
- 匹配(“ab:cd”,“ab\tcd”); 傳回 1。
- 匹配(“ab:cd”,“ab cd”); 傳回 0。 只有第一個空格會比對。
*:後面接著星號 (“*”) 的運算式需要比對前一個運算式的零個、一個或多個出現項目。 範例:
- 匹配(“abc*d”,“abd”); 傳回 1。
- 匹配(“abc*d”,“abcd”); 傳回 1。
- 匹配(“abc*d”,“abcccd”); 傳回 1。
- 匹配(“abc*d”,“abxd”); 傳回 0。
+:後面接著加號 (+) 的運算式需要相符於前一個或多個運算式的出現項目。 範例:
- 匹配(“abc+d”,“abd”); 傳回 0。
- 匹配(“abc+d”,“abcd”); 傳回 1
- 匹配(“abc+d”,“abcccd”); 傳回 1。
- 匹配(“abc+d”,“abxd”); 傳回 0。
-:後面接著減號 (-) 的運算式需要匹配前一個運算式的零個或一個出現。 換句話說,前面的運算式是選擇性的。 範例:
- match(“colou-r”,“顏色”); 傳回 1。
- 匹配(“colou-r”,“顏色”); 傳回 1。
[]:將單一字元與括在括弧內的任何字元進行比對。 字元範圍可以由兩個以減號 (-) 分隔的字元指定。 例如, [a-z] 比對 a 和 z 之間的所有字母, [0-9] 比對數字, [0-9a-f] 比對十六進位數字。 範例:
- 匹配(“[abc]”,“蘋果”); 傳回 1,因為它符合「蘋果」中的 a。
- 匹配(“[abc]”,“獼猴桃”); 傳回 0,因為 “kiwi” 不包含 a、b 或 c。
- 匹配(“gr[ae]y”,“灰色”); 傳回 1。 此運算式也與「灰色」相符。
- 匹配(“gr[ae]y”,“graey”); 傳回 0,因為 “gr” 和 “y” 之間只有一個字元相符。
[^]:如果括弧括在括弧中的文字中第一個字元是抑揚符 (^),則運算式會符合括弧中括住的字元以外的所有字元。 範例:
- 匹配(“[^bc]at”,“蝙蝠”); 傳回 0。
- 匹配(“[^bc]at”,“帽子”); 傳回 1。
- 匹配(“[^abc]”,“蝙蝠”); 傳回 1。 除了 a、b 或 c 之外的任何項目都會匹配。 因此,t 是匹配的。
斯特爾阿爾法
僅從字串複製英數字元。
str strAlpha(str _text)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要從中複製的字串。 |
返回值
包含指定字串中所有英數字元的新字串。
備註
例如, strAlpha(“2+2=5 這是正確的嗎?”) 傳回字串 225isthiscorrect。
Example
static void strAlphaExample(Args _arg)
{
str s;
;
s = strAlpha("?a*bc123.");
print s;
pause;
}
strCmp
比較兩個文字字串。
int strCmp(str text1, str text2)
參數
| 參數 | Description |
|---|---|
| 文1 | 第一個字串。 |
| 正文2 | 第二根字串。 |
返回值
如果兩個字串相同,則為 0,如果第一個字串排序較早,則為 1,如果第二個字串排序較早,則為 -1。
備註
此方法執行的比較區分大小寫。
print strCmp("abc", "abc"); //Returns the value 0.
print strCmp("abc", "ABC"); //Returns the value 1.
print strCmp("aaa", "bbb"); //Returns the value -1.
print strCmp("ccc", "bbb"); //Returns the value 1.
strColSeq
將所有大寫字元轉換為小寫字元,並將所有有重音符號的字元轉換為對應的無重音小寫字元。
str strColSeq(str text)
參數
| 參數 | Description |
|---|---|
| 收發簡訊 | 要從中複製和轉換字元的字串。 |
返回值
轉換後的文字字串。
備註
strColSeq 函數的存在是為了向後相容性。 此功能僅支援下列西歐字元的對應:
- AàáâãäÀÂÂÃÄBCçÇDEèéêëÈÉÊËFGHIìíîïÌÍÎÏJKLMNñÑOòóôõöpqrstuÙúûüÙÚÛÜVWXYýÝZæøåÆØÅ
- aaaaaaabcccdeeeeeeeeeeeeefghiiijklmnnnoooooooooopqrstuuuuuwxyyyz~¦Ç~¦Ç~¦Ç
針對符合 Unicode 規範的功能,請透過 DLL 和 DLLFunc 類別使用 Win32 LCMapString 應用程式設計介面 (API) 。
Example
下列範例會列印 abcdeabcde。
static void strColSeqExample(Args _arg)
{
;
print strColSeq("");
pause;
}
strDel
建立字串的複本,從中移除指定的子字串。
str strDel(str _text, int _position, int _number)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要從中複製的字串。 |
| _位 | 在複製作業期間開始忽略字元的位置。 |
| _數 | 要忽略的字元數。 _number 參數前面的減號表示應將 _position 處字元之前的 _number-1 字元與_position處的字元一起移除。 |
返回值
從字串複製的其餘字元。
備註
strDel 函數是 substr 函數的補充。
strDel("ABCDEFGH",2,3); //Returns the string "AEFGH".
strDel("ABCDEFGH",4,3); //Returns the string "ABCGH".
strFind
在字串中搜尋其中一個指定字元的第一次出現。
int strFind(str _text, str _characters, int _position, int _number)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要搜尋的字串。 |
| _characters | 要搜尋的字元。 |
| _位 | 字串中開始搜尋的位置。 |
| _數 | 一個帶正負號的數字,指出搜尋的方向,以及要在字串中搜尋的位置數目。 |
返回值
第一次出現其中一個指定字元的位置值,或找不到任何字元時為 0。
備註
若要從字串的開頭到結尾進行搜尋,請使用 1 作為 _position 參數的值。 如果 _number 參數的值為負數,系統會從指定位置向後搜尋字元數。 搜尋不區分大小寫。 以下是範例。
strFind("ABCDEFGHIJ","KHD",1,10); //Returns the value 4 (the position where "D" was found).
strFind("ABCDEFGHIJ","KHD",10,-10); //Returns the value 8 (the position where "H" was found).
strFind 函式是 strNFind 函式的補充。
strFmt
格式化指定的字串,並將任何出現的 n 以第 n 個引數取代。
str strFmt(str _string, ...)
參數
| 參數 | Description |
|---|---|
| _繩子 | 要格式化的字串。 |
返回值
格式化字串。
備註
如果未為參數提供引數,則參數會在字串中傳回為「%n」。 實數類型值的字串轉換限制為小數點後兩位。 值會四捨五入,而不是截斷。 Microsoft .NET Framework 中的 System.String::Format 方法可用來取得更多功能,如範例所示。
Example
static void strFmtExampleJob(Args _arg)
{
System.Double sysDouble;
real r = 8.3456789;
int i = 42;
utcDateTime utc = str2DateTime("2008-01-16 13:44:55" ,321); // 321 == YMD.
str s;
;
s = strFmt("real = %1, int = %2, utcDateTime = %3, [%4]", r, i, utc);
info("X1: " + s);
//
sysDouble = r;
s = System.String::Format("{0:##.####}", sysDouble);
info("N1: " + s);
//
s = System.String::Format("{0,6:C}", sysDouble); // $
info("N2: " + s);
/********** Actual Infolog output
Message (02:16:05 pm)
X1: real = 8.35, int = 42, utcDateTime = 1/16/2008 01:44:55 pm, [%4]
N1: 8.3457
N2: $8.35
**********/
}
strIns
透過將一個字串插入另一個字串來建立字串。
str strIns(str _text1, str _text2, int _position)
參數
| 參數 | Description |
|---|---|
| _text1 | 要插入另一個字串的字串。 |
| _text2 | 要插入到另一個字串中的字串。 |
| _位 | _text2 參數的第一個字元應該出現在輸出字串中的位置。 |
返回值
組合的文字字串。
備註
strIns 函數與 strDel 函數互補。 如果 _position 參數的值大於原始字串的長度,則要插入的字串會附加到原始字串的結尾。
strIns("ABFGH","CDE",3); //Returns the string "ABCDEFGH".
strIns("ABCD","EFGH",10); //Returns the string "ABCDEFGH".
strKeep
僅使用第二個輸入字串指定的第一個輸入字串中的字元來建置字串,而第二個輸入字串指定應該保留該字串。
str strKeep(str _text1, str _text2)
參數
| 參數 | Description |
|---|---|
| _text1 | 包含可用來建置輸出字串之字元的字串。 |
| _text2 | 指定輸出字串要保留哪些字元的字串。 |
返回值
保留的字元字串。
備註
strKeep("ABBCDDEFGHB","BCD"); //Returns the string "BBCDDB".
strKeep("abcZcba","bc") //Returns the string "bccb".
strKeep 函數是 strRem 函數的補充。
斯特倫
計算指定字串的長度。
int strLen(str text)
參數
| 參數 | Description |
|---|---|
| 收發簡訊 | 要計算長度的字串。 |
返回值
指定字串的長度。
備註
strLen("ABC"); //Returns the value 3.
strLen("ABCDEFGHIJ"); //Returns the value 10.
strLine
從跨越多行的字串擷取單一行。
str strLine(str string, int count)
參數
| 參數 | Description |
|---|---|
| 字串 | 可能跨越多行的字串。 |
| count | 要返回的線的偏移。 |
返回值
字串參數所指定的字串的複製行。
備註
字串的第一行的偏移量為 0。 您可以將 \n 或 \r\n 字元內嵌在字串中,將多行指派給一個字串。 此外,您可以在左引號之前使用位置符號 (@),並使用 Enter 鍵在 X++ 程式碼編輯器中將字串值的部分分散到多行上。
Example
str mytxt = "first-line\nsecond-line\nlast-line";
// Prints "second-line".
print strLine(mytxt,1);
// Prints "last-line".
print strLine(mytxt,2);
strLTrim
從文字字串中移除前導空白。
str strLTrim(str text)
參數
| 參數 | Description |
|---|---|
| 收發簡訊 | 要從中刪除前導空白的字串。 |
返回值
已移除前導空白之文字的字串對等。
備註
strLTrim 函式是 strRTrim 函式的補充。
Example
// Returns the text string "ABC-DEFG".
strLTrim(" ABC-DEFG");
strLwr
將指定字串中的所有字母轉換為小寫。
str strLwr(str _text)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要轉換為小寫的字串。 |
返回值
僅包含小寫字母的指定字串副本。
備註
strLwr 函數是 strUpr 函數的補充。 strLwr 函式會使用 Win32 API 中的 LCMapString 函式。
Example
static void strLwrExample(Args _args)
{
// Returns the text string "abcdd55efghij".
print strLwr("Abcdd55EFGHIJ");
pause;
}
strNFind
搜尋文字字串的一部分,以尋找未包含在指定字元清單中的字元的第一次出現。
int strNFind(str _text, str _characters, int _position, int _number)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要搜尋的文字字串。 |
| _characters | 要從搜尋中排除的字元清單。 |
| _位 | 字串中要開始搜尋的位置。 |
| _數 | 一個帶號的數字,指示搜索方向和要搜索的職位數量。 如果減號位於_number之前,系統會以與_position相反的順序搜尋_number字元。 |
返回值
_characters 參數未指定的字元第一次出現的位置,或找不到時為 0。
備註
搜尋不區分大小寫。 若要從字串的開頭到結尾進行搜尋,請使用 _position 參數的值 1。 如果減號位於 _number 參數的值之前,則會從 _position 參數所指定的位置開始,以相反的順序搜尋字元。
strNFind("ABCDEFGHIJ","ABCDHIJ",1,10); //Returns the value 5 (the position of "E");
strNFind("CDEFGHIJ","CDEFGIJ",10,-10); //Returns the value 6 (the position of "H").
strNFind("abcdef","abCdef",3,2) //Returns the value 0.
strNFind("abcdef", "abcef",3,2) //Returns the value 4.
strNFind 函式是 strFind 函式的補充。
str戳
用另一個字串覆寫字串的一部分。
str strPoke(str _text1, str _text2, int _position)
參數
| 參數 | Description |
|---|---|
| _text1 | 原始字串。 |
| _text2 | 要取代原始字串部分的字串。 |
| _位 | 開始取代字元的原始字串位置。 |
返回值
新字串。
備註
新字串可以比原始字串長。 不過,如果 _position 參數的值大於字串的長度,則會傳回原始字串而不進行取代。
strPoke("12345678","AAA",3); //Returns the string "12AAA678".
strPoke("abcde","4567",4); //Returns the string "abc4567".
strPoke("abcde", "4567", "10"); //Returns the string "abcde".
str提示
附加具有指定句點字元數目的字串,後面接著冒號和空格字元。
str strPrompt(str _string, _int len)
參數
| 參數 | Description |
|---|---|
| _繩子 | 原始字串。 |
| _len | 所需的最終字串長度。 |
返回值
看起來像使用者輸入提示的字串。
備註
在非典型情況下,當 _len 參數的值僅略大於原始字串的長度時,會給予添加尾端空格的最高優先順序。 接下來,冒號優先。 最低優先順序是給句點。 _len 參數的負值會傳回附加尾端空格的輸入字串。
strPrompt("ab",-1); //Returns "ab ".
strPrompt("ab",3); //Returns "ab ".
strPrompt("ab",4); //Returns "ab: ".
strPrompt("ab",5); //Returns "ab.: ".
strPrompt("ab",6); //Returns "ab..: ".
Example
static void JobStrPromptDemo(Args _args)
{
// Printed string is "[abc..: ]"
print "[", strPrompt("abc", 7), "]";
pause;
}
strRem
從另一個字串中移除一個字串中指定的字元。
str strRem(str text1, str text2)
參數
| 參數 | Description |
|---|---|
| 文1 | 要從中移除字元的字串。 |
| 正文2 | 要從輸出字串中排除的字元。 |
返回值
原始字串的其餘內容。
備註
此函式會區分大小寫。
strRem("abcd_abcd","Bc"); //Returns the string "abd_abd".
strRem("ABCDEFGABCDEFG","ACEG"); //Returns the string "BDFBDF".
此函式是 strKeep 函式的補充。
strRep
重複一串字元。
str strRep(str _text, str _number)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要重複的字串。 |
| _數 | 重複字串的次數。 |
返回值
包含重複指定次數的原始字串內容的新字串。
Example
下列範例會列印文字字串 ABABABABABAB。
static void strRepExample(Args _arg)
{
str strL;
;
strL = strRep("AB",6);
print strL;
pause;
}
strRTrim
從字串結尾移除尾端空格字元。
str strRTrim(str _text)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要從中移除尾端空格字元的字串。 |
返回值
不包含尾端空格字元的指定字串複本。
備註
strRTrim("ABC-DEFG- "); //Returns the string "ABC-DEFG-".
strRTrim(" CD "); //Returns " CD".
strRTrim 函式是 strLTrim 函式的補充。
strScan
搜尋文字字串以尋找另一個字串的出現。
int strScan(str _text1, str _text2, int _position, int _number)
參數
| 參數 | Description |
|---|---|
| _text1 | 要搜尋的字串。 |
| _text2 | 要尋找的字串。 |
| _位 | _text1參數中要執行比較的第一個位置。 |
| _數 | _text1參數中要重試比較的位置數目。 如果減號位於 _number 參數之前,系統會從指定位置以相反順序搜尋字元數。 |
返回值
在字串中找到指定字串的位置;否則為 0 (零)。
備註
比較不區分大小寫。 小於 1 的 _position 參數值會被視為 1。 掃描方向由 _number 參數中指定的符號控制。 正號表示每次連續比較都會從更靠近字串結尾的位置開始。 負號表示每次比較都會從更靠近字串開頭的位置開始。
strScan("ABCDEFGHIJ","DEF",1,10); //Returns the value 4.
strScan ("ABCDEFGHIJ","CDE",10,-10); //Returns the value 3.
strUpr
將字串中的所有字母轉換為大寫。
str strUpr(str _text)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要轉換為大寫字母的字串。 |
返回值
僅包含小寫字母的指定字串副本。
備註
strUpr 函數是 strLwr 函數的補充。 strUpr 函式會使用 Win32 API 中的 LCMapString() 函式。
Example
下列範例會列印 ABCDD55EFGHIJ。
static void strUprExample(Args _args)
{
print strUpr("Abcdd55EFGhiJ");
pause;
}
子
擷取字串的一部分。
str subStr(str _text, int _position, int _number)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 原始字串。 |
| _位 | 原始字串中要擷取的零件開始的位置。 |
| _數 | 帶正負號的整數,指出要從原始字串擷取的位置方向和數目。 如果減號位於 _number之前,系統會從指定位置向後選取子字串。 |
返回值
原始字串的子字串。
備註
如果減號位於 _number 參數的值之前,則會從指定位置向後選取子字串。
subStr("ABCDEFGHIJ",3,5); //Returns the string "CDEFG".
subStr("ABCDEFGHIJ",7,-4); //Returns the string "DEFG".
subStr("abcdef",2,99) //Returns the string "bcdef".
subStr("abcdef",2,3) //Returns the string "bcd".
subStr("abcdef",2,-3); //Returns the string "ab".
str包含
檢查文字字串是否包含另一個字串。
boolean strContains(str _text, str _potentialContains)
參數
| 參數 | Description |
|---|---|
| _簡訊 | 要搜尋的原始字串。 |
| _potentialContains | 要尋找的字串。 |
返回值
如果原始字串包含搜尋的字串,則為 True;否則為 false。
備註
比較不區分大小寫。
strContains("ABCDEFGHIJ","abc"); //Returns true.
strContains("ABCDEFGHIJ","ABC"); //Returns true.
strContains("ABCDEFGHIJ","K"); //Returns false.
strStartsWith
檢查文字字串是否以另一個字串開頭。
boolean strStartsWith(str _string, str _potentialStart)
參數
| 參數 | Description |
|---|---|
| _繩子 | 要搜尋的原始字串。 |
| _potentialStart | 開頭的潛在字串。 |
返回值
如果潛在字串是原始字串的開頭,則為 True;否則為 false。
備註
比較不區分大小寫。
strStartsWith("ABCDEFGHIJ","abc"); //Returns true.
strStartsWith("ABCDEFGHIJ","ABC"); //Returns true.
strStartsWith("ABCDEFGHIJ","B"); //Returns false.
strEnds與
檢查文字字串是否以另一個字串結尾。
boolean strEndsWith(str _string, str _potentialEnd)
參數
| 參數 | Description |
|---|---|
| _繩子 | 要搜尋的原始字串。 |
| _potentialEnd | 末尾的潛在字串。 |
返回值
如果潛在字串結束原始字串,則為 True;否則為 false。
備註
比較不區分大小寫。
strEndsWith("ABCDEFGHIJ","ghij"); //Returns true.
strEndsWith("ABCDEFGHIJ","HIJ"); //Returns true.
strEndsWith("ABCDEFGHIJ","B"); //Returns false.
strLRTrim
從文字字串中移除前導和尾部空白。
str strLRTrim(str text)
參數
| 參數 | Description |
|---|---|
| 收發簡訊 | 要從中刪除前導和尾部空白的字串。 |
返回值
不包含前導和尾端空格字元的指定字串複本。
備註
strLRTrim 函式是 strRTrim 和 strLTrim 函式的補充。
Example
// Returns the text string "ABC-DEFG".
strLRTrim(" ABC-DEFG ");