在这个程序中,我试图在操作员校正的情况下得到以下输出,这里,我想得到输出以检查字符串是否是有效的算术表达式,然后打印有效的&如果没有(例如a +,B +或a + b +或ab = c * d-等等......)所以我用Java设计了这个代码,但是当我尝试循环检查检查时,我没有得到输出问题,但在循环外没有改变价值。任何人都可以帮我解决这个问题吗?
代码:
import java.util.Scanner;
public class InvalidOperatorCheck {
public static void main(String[] args){
int i = 0;
boolean flag = false;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the Expression to test the string");
String expression = scan.next();
while (expression.isEmpty()) {
if (i % 2 == 1) {
if (expression.equals("+") || expression.equals("-") || expression.equals("/") || expression.equals("*"))
flag = false;
}
if (expression.length() - 1 == i) {
if (expression.contentEquals("[a-zA-Z]"))
flag = true;
} else {
flag = false;
}
i++;
i++;
}
if (flag == false) {
System.out.println("\nNot Valid\n");
} else {
System.out.println("\nValid\n");
}
}
}
答案 0 :(得分:0)
您需要更新代码,然后在逻辑中进行所需的编辑。
示例代码
import java.util.Scanner;
public class InvalidOperatorCheck{
public static void main(String[] args){
int i = 0;
boolean flag = false;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the Expression to test the string");
String expression = scan.next();
while (!expression.isEmpty()) {
if (i % 2 == 1) {
if (expression.equals("+") || expression.equals("-") || expression.equals("/") || expression.equals("*"))
flag = false;
break;
}
if (expression.length() - 1 == i) {
if (expression.contentEquals("[a-zA-Z]"))
flag = true;
} else {
flag = false;
break;
}
i++;
i++;
}
if (flag == false) {
System.out.println("\nNot Valid\n");
} else {
System.out.println("\nValid\n");
}
}
}