I’m writing a program where the user enters a String in the following format:
JavaScript
x
"What is the square of 10?"
- I need to check that there is a number in the String
- and then extract just the number.
- If i use
.contains("\d+")
or.contains("[0-9]+")
, the program can’t find a number in the String, no matter what the input is, but.matches("\d+")
will only work when there is only numbers.
What can I use as a solution for finding and extracting?
Advertisement
Answer
The solution I went with looks like this:
JavaScript
Pattern numberPat = Pattern.compile("\d+");
Matcher matcher1 = numberPat.matcher(line);
Pattern stringPat = Pattern.compile("What is the square of", Pattern.CASE_INSENSITIVE);
Matcher matcher2 = stringPat.matcher(line);
if (matcher1.find() && matcher2.find())
{
int number = Integer.parseInt(matcher1.group());
pw.println(number + " squared = " + (number * number));
}
I’m sure it’s not a perfect solution, but it suited my needs. Thank you all for the help. 🙂