我有一个长字符串,我想解析和检索一个值。
我当时在考虑使用模式,但是对此我有些生疏。

这是我感兴趣的字符串的一部分:


  下沉成功率将达到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+%)"

10-08 19:15