我正在尝试学习正则表达式,但在阅读完java教程后,我的表现并不好.
该程序应该采用以下格式:
a)将dd dd加在一起b)从13 c减去05)将02添加到03
并返回dd(+或 - )dd = answer
我设置它的(错误)方法是让prog尝试找到3个匹配中的任何一个,并继续这样做直到用户输入"bye".如果没有匹配,则应该再次提示用户输入.
这是我的代码!正好有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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
您是否尝试在Eclipse或IntelliJ IDEA等IDE中查看代码?他们会为你突出错误.我看到的主要是你没有把正则表达式放在字符串中.Java没有本机正则表达式,因此您需要将它们作为字符串提供.这是一个例子:
Matcher x = p.matcher("\\badd\\b\\s\\d\\d\\s\\d\\d\\s\\btogether\\b"); //format add 12 12 together
Run Code Online (Sandbox Code Playgroud)
注意我是如何加倍反斜杠的.这是因为它是Java和正则表达式中的转义字符.编译器将上面的字符串解释为\badd\b\s\d\d\s\d\d\s\btogether\b,然后正则表达式解析器将正确解释转义字符.
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |