Try This: Find the Substring
Sometimes it’s wise to check if a string contains a certain phrase. For example, a micro:bit might be sending radio commands to more than one cyber:bot robot. A unique name could be used to select which cyber:bot in the group should execute the command.
The () find index of () block can help with this. It returns the index of the first character in the matching substring. If it returns 0, it means it found the character at the very beginning of the string. If it returns 5, it means it started at the fifth character in the string. If it doesn’t find a match, it returns -1.
Here is an example of how () find index of () can be used:
- set (n) to ((s) find index of (“run”)) finds the first instance of “run” in a string named s and stores it in n.
Keep in mind that you can also search for characters. Just use a single character in the search, like (s) find index of (“A”).
As mentioned in the Strings and Characters page, string objects also have useful blocks. Heads up, the upper block is in the cyberbots support section. Here are a few examples to try:
Here we have three examples of searching for substrings with () find index of (). After finding the index of the first and second instances of one substring, it looks for a substring that isn’t there. Examine the searches and results carefully.
Example project: comp_find_check_try_this
- Enter and name comp_find_check_try_this.
- Click the Download button.
- Check the results in the serial terminal at Google Chrome Labs Serial Terminal.
- Verify that the results are 0 and -1.
Does this make sense? The first instance of “Arthur” starts at character 0 in s. Since Lancelot isn’t in there, it returns -1.
- Try changing the first Arthur to Lancelot.
- You should get back a 15 and 0 instead of a 0 and -1