Java Regex从字符串中提取最大数值

最大值是从字母数字字符串中提取的。一个例子如下:

String = abcd657efgh234
Maximum numeric value = 657

演示此的程序如下所示-

示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
 public static void main (String[] args) {
    String str = "123abc874def235ijk999";
    System.out.println("The string is: " + str);
    String regex = "\\d+";
    Pattern ptrn = Pattern.compile(regex);
    Matcher match = ptrn.matcher(str);
    int maxNum = 0;
    while(match.find()) {
       int num = Integer.parseInt(match.group());
       if(num > maxNum) {
          maxNum = num;
       }
    }
    System.out.println("The maximum numeric value in above string is: " + maxNum);
 }
}

输出结果

The string is: 123abc874def235ijk999
The maximum numeric value in above string is: 999

现在让我们了解上面的程序。

首先,显示字符串。然后,为至少一位数字创建正则表达式。然后编译正则表达式并创建匹配对象。演示此过程的代码段如下所示。

String str = "123abc874def235ijk999";
System.out.println("The string is: " + str);
String regex = "\\d+";
Pattern ptrn = Pattern.compile(regex);
Matcher match = ptrn.matcher(str);

while循环用于查找字符串中的最大数值。然后显示maxNum。证明这一点的代码片段如下所示-

int maxNum = 0;
while(match.find()) {
 int num = Integer.parseInt(match.group());
 if(num > maxNum) {
    maxNum = num;
 }
}
System.out.println("The maximum numeric value in above string is: " + maxNum);