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