Java 使用包含括号的列表在堆栈中存储特定括号(开始、结束) static List opening方括号=new ArrayList(); 静态列表closingcolds=newarraylist(); 公共静态最终字符串quit=“”;//用于sentinel循环 公共静态void main(字符串[]args) { 扫描仪=新的扫描仪(System.in); //包含所有开头括号的列表 打开方括号。添加(“”); 加上(“{”); 打开方括号。添加(“[”); 打开方括号。添加(“”); 系统输出打印LN(闭合括号); String sent=“value”;//分配给sent的一些伪值。 //创建堆栈以存储开口括号 堆栈打开=新堆栈(); //创建堆栈以存储右括号 Stack stackClosing=新堆栈(); 而(!sent.equals(退出)) { System.out.println(“输入要测试的字符串:”); sent=scanner.nextLine(); 对于(int i=0;i)]>

Java 使用包含括号的列表在堆栈中存储特定括号(开始、结束) static List opening方括号=new ArrayList(); 静态列表closingcolds=newarraylist(); 公共静态最终字符串quit=“”;//用于sentinel循环 公共静态void main(字符串[]args) { 扫描仪=新的扫描仪(System.in); //包含所有开头括号的列表 打开方括号。添加(“”); 加上(“{”); 打开方括号。添加(“[”); 打开方括号。添加(“”); 系统输出打印LN(闭合括号); String sent=“value”;//分配给sent的一些伪值。 //创建堆栈以存储开口括号 堆栈打开=新堆栈(); //创建堆栈以存储右括号 Stack stackClosing=新堆栈(); 而(!sent.equals(退出)) { System.out.println(“输入要测试的字符串:”); sent=scanner.nextLine(); 对于(int i=0;i)]>,java,list,stack,Java,List,Stack,样本输出: 堆栈(用于打开括号):[(,),],>] 但是,当分别打印两个堆栈时,它会输出s 两个堆栈的[(,),],>] 打开方括号和关闭方括号是字符串的s。但是,您可以检查这些集合是否包含s: 由于集合s不包含任何字符s,因此未找到匹配项,这就是为什么所有元素都添加到两个堆栈s的原因 若要解决此问题,请在测试前将字符的集合s设置为打开括号和关闭括号,或者将c转换为字符串,如果它包含在其中一个集合中 (大多数集合s检查,如果它们包含一个元素,则使用该方法,对于字符串和字符,如果两个实例的

样本输出:

  • 堆栈(用于打开括号):
    [(,),],>]
但是,当分别打印两个堆栈时,它会输出s

  • 两个堆栈的
    [(,),],>]

打开方括号
关闭方括号
字符串
的s。但是,您可以检查这些集合是否包含s:

由于
集合
s不包含任何
字符
s,因此未找到匹配项,这就是为什么所有元素都添加到两个
堆栈
s的原因

若要解决此问题,请在测试前将
字符的
集合
s设置为
打开括号
关闭括号
,或者将
c
转换为
字符串
,如果它包含在其中一个
集合


(大多数
集合
s检查,如果它们包含一个元素,则使用该方法,对于
字符串
字符
,如果两个实例的类型相同,则只返回
true
打开方括号
关闭方括号
字符串
的s。但是,您可以检查这些集合是否包含s:

由于
集合
s不包含任何
字符
s,因此未找到匹配项,这就是为什么所有元素都添加到两个
堆栈
s的原因

若要解决此问题,请在测试前将
字符的
集合
s设置为
打开括号
关闭括号
,或者将
c
转换为
字符串
,如果它包含在其中一个
集合


(大多数
集合
s检查,如果它们包含一个元素,则使用该方法,对于
字符串
字符
,如果两个实例的类型相同,则只返回
true

欢迎使用StackOverflow。请查看此内容以改进您的问题。如何打印堆栈,此外,请尝试使用if-else并从if条件中删除“!”标点。使用普通的“print”语句;System.out.println(“…”+stackOpening);我删除了“!”,但它没有在堆栈中存储任何内容。这是Java标准库中的类吗?
Java.util.stack
?OpeningBrands
ClosingBrands
的定义是什么?List OpeningBrands=new ArrayList();List ClosingBrands=new ArrayList();欢迎使用StackOverflow。请查看此内容以改进您的问题。如何打印堆栈,此外,请尝试使用if-else并从if条件中删除“!”标点。使用普通的“print”语句;System.out.println(“…”+stackOpening);我删除了“!”,但它没有在堆栈中存储任何内容。这是Java标准库中的类吗?
Java.util.stack
?OpeningBrands
ClosingBrands
的定义是什么?List OpeningBrands=new ArrayList();List ClosingBrands=new ArrayList();在我将开括号和闭括号的集合更改为“字符”时工作。谢谢。:)在我将开括号和闭括号的集合更改为“字符”时工作。谢谢。:)
    static List<String> openingBrackets = new ArrayList<String>();
    static List<String> closingBrackets = new ArrayList<String>();

    public static final String quit = ""; // to be used in sentinel loop

    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);

        // list containing all the opening brackets
        openingBrackets.add("(");
        openingBrackets.add("{");
        openingBrackets.add("[");
        openingBrackets.add("<");
        System.out.println(openingBrackets);

        // list that contains the closing brackets
        closingBrackets.add(")");
        closingBrackets.add("}");
        closingBrackets.add("]");
        closingBrackets.add(">");
        System.out.println(closingBrackets);

        String sent = "value"; // some dummy value assigned to sent.

        // creating a stack to store the opening brackets
        Stack stackOpening = new Stack();

        // creating a stack to store the closing brackets
        Stack stackClosing = new Stack(); 

        while (!sent.equals(quit))
        {
            System.out.println("Enter a string to test:");
            sent = scanner.nextLine();

            for (int i=0; i<sent.length(); i++)
            {
                char c = sent.charAt(i);

                if (! openingBrackets.contains(c))
                {
                    // push the opening brackets in the String sent 
                    // in the Stack for opening brackets

                    stackOpening.push(c); 
                }

                if (! closingBrackets.contains(c))
                {
                    // push only the closing brackets in the String
                    // in the stack for closing brackets

                    stackClosing.push(c);
                }
            }
        }
    }
}
char c = sent.charAt(i);

if (! openingBrackets.contains(c))