gpt4 book ai didi

java - 使用堆栈检查 .txt 文件中的 ('s, {' s、[ 等 - Java

转载 作者:行者123 更新时间:2023-12-02 08:06:18 26 4
gpt4 key购买 nike

我正在尝试用java编写一个方法来搜索我导入的文本文件中的特定字符。该文件实际上是我设计并转换为.txt文件的java程序。

当找到左大括号/括号时,我应该将其添加(插入)到堆栈中,然后当找到相应的右大括号/括号时,我应该将其从堆栈中删除(弹出)。

目的是看看我的 )}]> 数量是否正确与 ({[> 相对应。如果它们全部匹配,则该方法应返回 true ,如果不这样做,则应返回 false。

有人知道我该怎么写吗?

最佳答案

这是平衡输入文本文件中括号的示例实现

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Stack;

public class BalanceBrackets {
private Stack<Character> symbolStack;

public void balance(String inputText) {
symbolStack = new Stack<Character>();
for (int index = 0; index < inputText.length(); index++) {
char currentSymbol = inputText.charAt(index);
switch (currentSymbol) {
case '(':
case '[':
case '{':
symbolStack.push(currentSymbol);
break;

case ')':
case ']':
case '}':
if (!symbolStack.isEmpty()) {
char symbolStackTop = symbolStack.pop();
if ((currentSymbol == '}' && symbolStackTop != '{')
|| (currentSymbol == ')' && symbolStackTop != '(')
|| (currentSymbol == ']' && symbolStackTop != '[')) {
System.out.println("Unmatched closing bracket while parsing " + currentSymbol + " at " + index+1);
return;
}
} else {
System.out.println("Extra closing bracket while parsing " + currentSymbol + " at character " + index+1);
return;
}
break;
default:
break;
}
}
if (!symbolStack.isEmpty())
System.out.println("Insufficient closing brackets after parsing the entire input text");
else
System.out.println("Brackets are balanced");
}

public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new FileReader("D://input.txt"));
String input = null;
StringBuilder sb = new StringBuilder();
while ((input = in.readLine()) != null) {
sb.append(input);
}
new BalanceBrackets().balance(sb.toString());
}
}

关于java - 使用堆栈检查 .txt 文件中的 ('s, {' s、[ 等 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8116924/

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