java中的正则表达式示例
我想从用户那里获取字符串类型的输入 然后找到前两个数字,将它们相乘,并将结果替换为文本 用户应该首先输入命令词,命令是:mul 示例:mul hello 2汽车?7颜色9道别5 结果应该是:14颜色9道别5 我写了这段代码,但它不起作用 你能帮我解决这个问题吗
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Collusion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String patternString = "((\\d+).+(\\d+))";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(input);
String text = matcher.group(0);
String found = matcher.group(1);
String thirdGroup = matcher.group(2);
String fourthGroup = matcher.group(3);
int firstNum = Integer.parseInt(thirdGroup);
int secondNum = Integer.parseInt(fourthGroup);
int integerMultiple = firstNum * secondNum ;
String multiple = String.valueOf(integerMultiple);
while (matcher.find()) {
String result = text.replace(multiple , found);
System.out.println(result );
}
}
}
# 1 楼答案
按如下方式操作:
运行示例:
我还建议您通过Oracle提供的一个优雅的regex Test Harness程序来了解java.util.regex.Matcher的有效使用