Java 对某些代码进行错误检查
我做了错误的解释。现在我正在做更好的解释。我的问题是错误处理不是例外。下面是我的代码。例如,如果我不想输入非正整数,我可以用try catch检查吗Java 对某些代码进行错误检查,java,Java,我做了错误的解释。现在我正在做更好的解释。我的问题是错误处理不是例外。下面是我的代码。例如,如果我不想输入非正整数,我可以用try catch检查吗 import java.util.Scanner; public static void main(String[] args) { System.out.println("Type in the expression with no empty spaces: "); Scanner sc = new Scanner(Syst
import java.util.Scanner;
public static void main(String[] args) {
System.out.println("Type in the expression with no empty spaces: ");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String[] tokens = split("[*,/,+,-");
for (int i = 0; i < 1; i++) {
String delims = tokens[1];
double n1 = Double.parseDouble(tokens[0]);
double n2 = Double.parseDouble(tokens[2]);
switch(tokens) case1;"+" System.out.println(n1+n2) // All cases
}
}
import java.util.Scanner;
公共静态void main(字符串[]args){
System.out.println(“输入表达式,不带空格:”);
扫描仪sc=新的扫描仪(System.in);
字符串s=sc.nextLine();
字符串[]标记=拆分(“[*,/,+,-”;
对于(int i=0;i<1;i++){
字符串delims=tokens[1];
double n1=double.parseDouble(令牌[0]);
double n2=double.parseDouble(令牌[2]);
switch(tokens)case1;“+”System.out.println(n1+n2)//所有情况
}
}
您可以使用正则表达式检查表达式是否有效。String
类提供了使用正则表达式验证字符串的matches()
方法,例如:
String regex = "[0-9]+[-+/\\*][0-9]+";
String expression = "3+6";
System.out.println("3+6".matches(regex));
您可以在if
条件中使用匹配
来验证用户的输入。完成后,您可以使用“split(“\b”)”来提取操作数和运算符
更新
添加上述逻辑后的代码如下所示:
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String regex = "[0-9]+[-+/\\*][0-9]+";
if(s.matches(regex)){
String[] tokens = s.split("\\b");
//Your logic
}else{
System.err.println("Please try in a valid expression!");
}
我已经加了一个例子。不要误会我写了以前的作业可能重复的