在java中,如何将句子中的每个单词作为单独的元素添加到堆栈中?

在java中,如何将句子中的每个单词作为单独的元素添加到堆栈中?,java,Java,我正在尝试将字符串中的每个单词分开,然后将它们添加到堆栈中。下面是我编写的代码。每次我运行测试仪时,它总是返回一个空堆栈,但是堆栈中不应该有 import java.util.Stack; public class HTML3{ //main method public static boolean checkBalance(String str) { Stack<String> stack = new Stack<String>(); String[]

我正在尝试将字符串中的每个单词分开,然后将它们添加到堆栈中。下面是我编写的代码。每次我运行测试仪时,它总是返回一个空堆栈,但是堆栈中不应该有

import java.util.Stack;

public class HTML3{
//main method
public static boolean checkBalance(String str) {
    Stack<String> stack = new Stack<String>();
    String[] words = str.split(" ");
    for (int i = 0; i < words.length; i++) {
        String tag = words[i];
        if(tag=="<body>" || tag=="<hl>" || tag=="<center>" || tag=="<p>" || tag=="<ol>" || tag=="<li>") {     
                stack.push(tag);
        }
    }

    return stack.isEmpty();
}

public static void main(String[]args)
{
    checkBalance("<body> <li>");
   }
import java.util.Stack;
公共类HTML3{
//主要方法
公共静态布尔校验平衡(字符串str){
堆栈=新堆栈();
String[]words=str.split(“”);
for(int i=0;i”{
栈.推(标签);
}
}
返回stack.isEmpty();
}
公共静态void main(字符串[]args)
{
支票余额(
  • ); }

  • }您很接近,但是==不比较字符串,它比较对象,例如,case标记是与“”不同的对象

    使用.equals()来比较字符串,它将起作用

    tag.equals("<body>")
    
    tag.equals(“”)
    

    如果您学习使用调试器或提供代码提示的IDE,您可以自己解决这些问题。

    最好将循环编写为
    for(String-tag:words)
    或equalsIgnoreCase(),如果您不关心大小写敏感度,这可能就是这里的情况。