Performance comparision between Substring vs RegEx when start index is known

java, regex, string

Solution

The string will always begin with the word "PowerFactor" followed by a non-negative integer

This means you know exactly at which index you will find the number, i would say you better use the substring directly, at least considering the performance it would be much faster than searching and matching work.

extract.substring("PowerFactor".length());

I could not find any direct comparision but you can read about each one of the two options:

- Java substring performance

- Java Regex performance

Problem

I need to extract the first integer found in a `java.lang.String` and am unsure as to whether to try and use a `substring` approach or a regex approach: ``` // Want to extract the 510 into an int. String extract = "PowerFactor510"; // Either: int num = Integer.valueof(extract.substring(???)); // Or a regex solution, something like: String regex = "\\d+"; Matcher matcher = new Matcher(regex); int num = matcher.find(extract); ``` So I ask: - Which type of solution is more appropriate here, and why?; and - If the substring approach is more appropriate, what could I use to indicate the beginning of a number? - Else, if the regex is the appropriate solution, what is the regex/pattern/matcher/method I should use to extract the number? Note: The string will always begin with the word `PowerFactor` followed by a non-negative integer. Thanks in advance!

Original source

Related problems