谁能帮我这个?我没有得到输出

时间:2017-03-01 12:33:05

标签: java compiler-construction

在这个程序中,我试图在操作员校正的情况下得到以下输出,这里,我想得到输出以检查字符串是否是有效的算术表达式,然后打印有效的&如果没有(例如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");
    }    
  }
}

1 个答案:

答案 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");
            }    
        }
    }