Java: method to get position of a match in a String?
Finding a match's position in a String is a piece of cake using indexOf
:
In case there's no match, be prepared for a -1:
If you're dealing with more instances of the match, this loop is your friend:
Catch them all: getting multiple match positions
In a world full of multiple occurrences of your match, the indexOf
method turns into a Poké ball, capturing all match positions:
Regex: the advanced match catcher
For the Detective Pikachus out there dealing with complex patterns, say hello to Pattern
and Matcher
classes:
find()
is the search light, and start()
is the treasure chest's X mark. To catch the No Man's Land after the match, end()
is your pick!
Edge cases and efficiency guide
Starting from the mid-string
fromIndex with indexOf
is your go-to trick when your string is as large as the Great Wall of China:
From the end, with lastIndexOf
lastIndexOf
comes into play when you're feeling adventurous and want to begin your search from the end:
indexOf vs. regex: the efficient player
Where indexOf
outshines with its quick footwork in simple matching, regex pulls up a fight with intricate complex patterns. Choose your warrior wisely!
The dos and don'ts
- Beware of off-by-one errors: Crossing the boundary won't transport you to Stranger Things!
- Refresh index positions: Unless you enjoy Groundhog Day, keep updating indices in loops.
- Unleash
indexOf
: Oh simple sub-string searches,indexOf
is thy answer! No need to dive into regex waters.
Was this article helpful?