gpt4 book ai didi

java - 正则表达式: 100 errors

转载 作者:行者123 更新时间:2023-12-01 07:14:21 26 4
gpt4 key购买 nike

我正在尝试学习正则表达式,但在阅读完 java 教程后效果不佳。

该程序应该采用以下格式的输入:

a) 将 dd dd 添加在一起b) 从 13 减去 05c) 将 02 添加到 03

并返回 dd(+ 或 -)dd = 答案

我设置的(错误)方法是让程序尝试查找 3 个匹配项中的任何一个,并继续这样做,直到用户输入“再见”。如果不匹配,它应该提示用户再次输入。

这是我的代码!正好有 100 个错误。 :/如果有人可以帮助我解决语法问题,我将不胜感激!

 import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

class Calculator {
public static void main(String[] args){
Scanner imp = new Scanner(System.in);
System.out.println("yes> ");
String s = imp.nextLine();

if (s.equals("bye")) {
System.exit(0);
}

while (true) {

Pattern p = Pattern.compile(s); //compile string, check for formats

Matcher x = p.matcher(\badd\b\s\d\d\s\d\d\s\btogether\b); //format add 12 12 together
Matcher y = p.matcher(\bsubtract\b\s\d\d\s\d\d\s\bfrom\b); //format subtract 05 from 13
Matcjer z = p.matcher(\badd\b\s\d\d\s\bto\b\s\d\d); //format add 02 to 03

boolean b = p.matches;

boolean l = x.matches;
boolean i = y.matches;
boolean g = z.matches;

if (l.equals(true))
return (\d\d " + " \d\d " = " \d\d+\d\d);
else if (i.equals(true))
return (\d\d " + " \d\d " = " \d\d-\d\d);
else if (g.equals(true))
return (\d\d " + " \d\d " = " \d\d+\d\d);
}
}
}

最佳答案

您是否尝试过在 Eclipse 或 IntelliJ IDEA 等 IDE 中查看代码?他们会为您突出显示错误。我看到的主要问题是您没有将正则表达式放入字符串中。 Java 没有 native 正则表达式,因此您需要将它们作为字符串提供。这是一个例子:

Matcher x = p.matcher("\\badd\\b\\s\\d\\d\\s\\d\\d\\s\\btogether\\b"); //format add 12 12 together

请注意我是如何将反斜杠加倍的。这是因为它是 Java 以及正则表达式中的转义字符。编译器会将上面的字符串解释为 \badd\b\s\d\d\s\d\d\s\btogether\b,然后正则表达式解析器会正确解释转义字符.

关于java - 正则表达式: 100 errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6804154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com