在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(),如果您不关心大小写敏感度,这可能就是这里的情况。