一尘不染

检查字符串是否包含数字Java

java

我正在编写一个程序,其中用户以以下格式输入字符串:

"What is the square of 10?"
  1. 我需要检查字符串中是否有数字
  2. 然后只提取数字。
  3. 如果我使用.contains("\\d+").contains("[0-9]+"),则无论输入的内容是什么,程序都无法在字符串中找到数字,但是.matches("\\d+")仅在只有数字的情况下才能使用。

我可以使用什么作为查找和提取的解决方案?


阅读 217

收藏
2020-09-08

共1个答案

一尘不染

我使用的解决方案如下所示:

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));
}

我确信这不是一个完美的解决方案,但它满足了我的需求。谢谢大家的帮助。:)

2020-09-08