Java从字符串中获取整数值

Java从字符串中获取整数值,java,string,integer,Java,String,Integer,我想从字符串中获取整数值。下面是我的例子 String strScore = "Your score is 10. Probability in the next 2 years is 40%"; 但我只想得到10分。我该怎么做 更新: String firstNumber = strScore.replaceFirst(".*?(\\d+).*", "$1"); bfLog.createEntry( firstNumber ); 我将其保存到sqlite数据库。这取决于字符串中是否有其他

我想从字符串中获取整数值。下面是我的例子

String strScore = "Your score is 10. Probability in the next 2 years is 40%";
但我只想得到10分。我该怎么做

更新:

String firstNumber = strScore.replaceFirst(".*?(\\d+).*", "$1");

bfLog.createEntry( firstNumber );

我将其保存到sqlite数据库。

这取决于字符串中是否有其他内容可以更改

如果除了数字之外,它总是相同的,那么您可以使用

int score = Integer.parseInt(strScore.substring(14,16))
因为数字“10”位于字符串的索引14和15处。 如果字符串中的其他内容发生更改,则应使用正则表达式:


您可以使用
字符串
正则表达式
替换
方法之一来捕获

  • *?
    使用初始非数字(非贪婪)
  • (\\d+)
    获取组中的一个或多个可用数字
  • *
    其他一切(贪婪)
您可以尝试以下方法:

String strScore = "Your score is 10. Probability in the next 2 years is 40%";
String intIndex = strScore.valueOf(10);
String intIndex = 10 // Result

substring()
indexOf()
?这个字符串是静态的吗?它总是这样吗?添加到Eng.find中-可能是一个带有逻辑的正则表达式,如果你告诉我们它是什么的话。嗯,这里唯一改变的是分数。说比分是26分。下一个分数是7。嗯,然后解析到点,得到第一部分,然后根据空格再次解析得到最后一个嗯,如果分数只有7怎么办?那没关系,因为之后会忽略空格。我仍然不同意,你不能确定整数少于两位数。你能解释一下你提供的代码吗?因为我想知道这是怎么回事。谢谢。好的,但它仍然会得到下一个字符?它会匹配剩余的字符,这样它“知道”初始数字在哪里,字符串是不可变的。您使用的是新创建的
firstNumber
Sting
而不是
strScore
?看不出您是如何得到它的。如果要将代码添加到问题中。。。
String strScore = "Your score is 10. Probability in the next 2 years is 40%";
String intIndex = strScore.valueOf(10);
String intIndex = 10 // Result