java - 检查 .java 文件中打开的大括号的数量

标签 java

我必须编写一个程序来读取.java文件,并检查打开的大括号的数量与关闭的大括号的数量是否相同,它必须与堆栈一起使用。这就是我所做的,但显然我正在使用扫描仪并在那里引入该程序,并且它不必是这样的,它必须带有一个 .java 文件。

public class Llaves1 {

    public static int numPila;
    private int t = -1;
    private char[] pila;  Llaves1(int size){
        this.pila = new char[size];
        numPila++;
    } 

       public int size(){
        return (t+1);
    }

    public boolean isEmpty(){
        if(t==-1)
            return true;
        else
            return false;
    }

    public  void push(char x){
        if(this.size()== this.pila.length)
        {
            System.out.println("Pile is already full.");
        }
         else {
        this.pila[++t]=x;
        }
    }

    public char pop(){
        if(isEmpty()){
            System.out.println("Empty Pile.");
        }
        return pila[t--];
    }

    public char top(){
        if(isEmpty()){
            System.out.println("Empty pile.");
        }
        return pila[t];
    }

    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
        String cadena= teclado.nextLine();

        Llaves1 a= new Llaves1(cadena.length());
        for(int i=0; i<cadena.length();i++){
           char temp = cadena.charAt(i);
           a.push(temp);
        }

        if(a.isEmpty())
            System.out.println("Is empty.");
        int numC=0;
        int numA=0;

        for(int i=0; i<cadena.length(); i++){
            if(a.top()=='}')
               numC++;
            if(a.top()=='{')
               numA++;
            a.pop();
        }
        if(numA!=numC)
            System.out.println("You have to close curly braces");
        else 
            System.out.println("all curly braces have been closed.");
    }

}

最佳答案

如果您想从文件读取,请更改此

Scanner teclado = new Scanner(System.in);

Scanner teclado = new Scanner(new File("/somePath/someFile"));

您的扫描仪将从该文件读取,而不是从System.in读取;更有用的方法可能是

Scanner teclado = new Scanner(new File(args[0]));

如果您需要将文件作为参数传递。

关于java - 检查 .java 文件中打开的大括号的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301149/

相关文章:

java - 检索方法应该返回 'null' 还是在无法生成返回值时抛出异常?

java - 使用Ant写入属性文件以在JAVA中使用

java - 运行 "Missing Signature"时得到 "mvn deploy"

java - 如何在组合框 Action 监听器中仅包含用户操作?

java - 如何在android中设置自定义颜色

java - 重绘缓冲图像

java - 将 ListView 点击值传递给具有共享首选项的另一个 Activity

java - Retrofit2 POST 请求响应返回null

java - Android - 本地数据库(SQLite)与内部类(通过单例)

java - 如何在java中追加URL