gpt4 book ai didi

java - java中的LinkedList的LinkedList?

转载 作者:行者123 更新时间:2023-11-30 04:52:29 25 4
gpt4 key购买 nike

我正在尝试在java中实现一个堆栈,我希望能够返回返回错误的同伴的开括号的行和列。例如:

public static foo() {
System.out.println ("foo"
}

编译时应该会产生错误,我想返回的是以下形式的错误:

“错误:第 2 行第 23 列 '(' 已找到,预期为 ')',但在第 2 行第 29 列却找到了 ' '。”

这对于 linkedList 的 linkedLIst 来说可能吗?或者其他工具是否更适合此应用程序。我希望 Push()、pop() 和 peek() 方法保持恒定的行为。

谢谢

最佳答案

使用内置 Stack目的。无需重新发明轮子并创建您自己的标准库类版本。

关于不匹配大括号的打印错误,我建议创建一个类

public final class Brace {
private final char openBrace;
private final char closeBrace;
private final int row;
private final int col;

public Brace(char openBrace, int row, int col) {
this.openBrace = openBrace;
this.row = row;
this.col = col;

switch (openBrace) {
case '(':
closeBrace = ')';
break;
case '{':
closeBrace = '}';
break;
case '[':
closeBrace = ']';
break;
default:
throw new IllegalArgumentException("Unsupported opening brace");
}
}

public boolean isClosingBrace(char ch) {
return closeBrace == ch;
}
}

并保留Stack<Brace>在你的程序中。然后,当您在文件中移动时,您可以将左大括号插入堆栈,并且当您到达每个右大括号时,确保它是堆栈顶部大括号的右大括号。如果不是,则您已经存储了要在错误消息中打印的行和列。

关于java - java中的LinkedList的LinkedList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com