我有一个长字符串,我想解析和检索一个值。
我当时在考虑使用模式,但是对此我有些生疏。
这是我感兴趣的字符串的一部分:
下沉成功率将达到44%
“下沉”是关键字。我正在寻找百分比值(在这种情况下为44%)
什么是最好的方法?
谢谢。
**“将会是”一词可能会更改。
最佳答案
这是一个正则表达式解决方案:
String str = "...sinking will be 44% successful...";
Pattern p = Pattern.compile( "sinking will be (\\S*) successful" );
Matcher m = p.matcher( str );
if ( m.find() ) {
String percent = m.group( 1 );
}
如果只需要百分比的数字值,则将模式更改为此:
"sinking will be (\\d*)% successful"
如果上述任何文本均无关紧要,则只想获取一行中的百分比,请使用以下模式:
"(\\d*%)"
编辑:如果您的关键字是“下沉”,并且您想要此单词后的第一个百分比值,这将是您的模式:
"sinking(?:[\\w\\s]*) (\\d+%)"