I have below String.
ABC Results for draw no 2888
I would like to extract 2888 from here. That means, I need to extract characters after no in above string.
I'm always extract the number after the word no. The String contain no other no letter combinations elsewhere within it. String may contain other numbers and I don't need to extract them. Always there will be a space before the number and the number I wish to extract always be at the end of the String.
How could I achieve this ?
To get the substring after a specific character, call the substring() method, passing it the index after the character's index as a parameter. The substring method will return the part of the string after the specified character. Copied! We used the String.
Use the substring() method to get the substring before a specific character, e.g. const before = str. substring(0, str. indexOf('_')); . The substring method will return a new string containing the part of the string before the specified character.
The substr() method extracts a part of a string. The substr() method begins at a specified position, and returns a specified number of characters. The substr() method does not change the original string. To extract characters from the end of the string, use a negative start position.
You can extract a substring from a String using the substring() method of the String class to this method you need to pass the start and end indexes of the required substring.
yourString.substring(yourString.indexOf("no") + 3 , yourString.length());
You may try this
String example = "ABC Results for draw no 2888";
System.out.println(example.substring(example.lastIndexOf(" ") + 1));
You always want to strive something that is easy to configure and modify. That is why I always recommend to choose Regex Pattern matching over other searches.
Example, consider this for your example:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Play {
public static void main(String args[]) {
Pattern p = Pattern.compile("^(.*) Results for draw no (\\d+)$");
Matcher m = p.matcher("ABC Results for draw no 2888");
m.find();
String groupName = m.group(1);
String drawNumber = m.group(2);
System.out.println("Group: "+groupName);
System.out.println("Draw #: "+drawNumber);
}
}
Now from the provided pattern, I can easily identify the useful parts. It helps me to identify problems, and I can identify additional parts in the pattern that is useful to me (I have added the group-name).
Another clear benefit is that I can store easily this pattern externally in a configuration file.
For anyone willing to achieve this with the ubiquitous Apache Commons StringUtils:
String parsed = StringUtils.substringAfter(yourString, "no ");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With