To check if a 字串 contains another specified string within, each possible combination of orderly characters must be checked throughout the original string to test if it matches the string being checked for containment accuracy. This tutorial shows a 程式 method used to check if "string a" contains "string b". Note: This article differs from 字串是否包含指定字符的检查 because the string being checked must be in sequential order when searched in the following scripts.

## Group-Push Algorithm

The most efficient method involves grouping an individual selection of the string and then grouping the next selection one character forward, checking the condition each time. For this tutorial, assume the following:

• "condition" is a variable used for returning true or false if the string contains the string
• "grouper" is a variable used for grouping a particular sequence of the string
• "i" is a variable for iterating to the next group
• "x" is a variable for iterating and forming the group itself
```定義 check if string (base) contains (sub) //run without screen refresh

如果 <(condition) = [false]> 那麼
變數 [grouper v] 設為 [] // this begins the grouping with a blank string
變數 [x v] 設為 (i)
重複 (字串長度\( (sub) \)) 次
變數 [grouper v] 設為 (字串組合 (grouper) 和 (字串中第 (x 座標) 字\( (base) \)))
變數 [x v] 改變 (1)
end // this groups together the current sequence
如果 <(grouper) = (sub)> 那麼
變數 [condition v] 設為 [true]
end
變數 [i v] 改變 (1)
end
end
```

## Alternate Algorithm

This algorithm is less efficient and takes up more processing power but can be used anyways. For this algorithm, assume the following:

• "starting letter" is the 变量 used to define what letter the current combination begins with.
• "ending letter" is the variable used to define what letter the current combination ends with.
• "letter#" is the variable used to define what specific letter if the string is being added on.
• "changer" is the variable used to combine and check each possible combination.
• "output" is the variable used to respond "true" or "false" based on the condition of "string b" being within "string a"

For this script to work efficiently and correctly, run the custom block without screen refresh.

```定義 check if (string a) contains (string b) //the custom block is checking if "string b" is in any combination in "string a"

變數 [changer v] 設為 [] // set it to nothing so far
重複 (字串長度\( (string a) \)) 次
變數 [letter# v] 設為 (starting letter) // so the first letter is added on
重複 (((ending letter) - (starting letter)) + (1)) 次
變數 [changer v] 設為 (字串組合 (changer) 和 (字串中第 (letter#) 字\( (string a) \))) //adds a letter to the combination)
變數 [letter# v] 改變 (1) // moves on to the next letter to add to the combination
如果 <(changer) = (string b)> 那麼
變數 [output v] 設為 [true] // shows that "string b" is within "string a"
end // checks if the combination is true and within "string a"
end // so it tests the combination consisting of all characters from the starting letter to the ending one
變數 [ending letter v] 改變 (-1) // for testing out the next combination group with the same base, starting letter
變數 [changer v] 設為 [] // resets the variable to prepare for a new group of combinations
end // to iterate through "string a" while changing the ending letter by "-1" the length of "string a"
變數 [changer v] 設為 [] // resets the variable
變數 [starting letter v] 改變 (1) // prepares for the next combination group with each combination beginning with the next base letter
變數 [ending letter v] 設為 (字串長度\( (string a) \)) // since the "ending letter" value decreases by "1" each group
end // because the base, starting letter must be iterated by "1" by the length of the string itself

變數 [output v] 設為 [true]
end // for the case of "string a" and "string b" both being blank and the above script not functioning therefore
```

## 参见

— a similar script that does not require the characters to be in sequence

Cookies help us deliver our services. By using our services, you agree to our use of cookies.