Java 检查堆栈元素和字符的等价性
我想检查堆栈顶部的元素是否等于字符串中的字符。我该怎么做呢?我知道这是不对的:Java 检查堆栈元素和字符的等价性,java,arrays,stack,Java,Arrays,Stack,我想检查堆栈顶部的元素是否等于字符串中的字符。我该怎么做呢?我知道这是不对的: if (stack.peek() != str.charAt(i)) {} 我非常确定堆栈没有.equals()方法。如果您使用字符串的堆栈,那么下面是示例代码: Stack<String> st = new Stack<>(); st.add("s"); if(st.peek().equals(String.valueOf("sasda".charAt(0
if (stack.peek() != str.charAt(i)) {}
我非常确定堆栈没有
.equals()
方法。如果您使用字符串的堆栈
,那么下面是示例代码:
Stack<String> st = new Stack<>();
st.add("s");
if(st.peek().equals(String.valueOf("sasda".charAt(0)))) {
System.out.println("blah blah");
}
Stack st=new Stack();
st.add(“s”);
if(st.peek().equals(String.valueOf(“sasda.charAt(0))){
System.out.println(“诸如此类”);
}
N.B:
1) 即使您使用的是String
,但仅使用equals()
是不够的,因为您正在将char
与String
进行比较(stack.peek()!=str.charAt(i)
)。因此,您需要比较String
或char
2) 如果您使用的是自定义POJO
,那么您将使用getter
进行比较
希望一切都清楚 您的堆栈对象是如何创建的?为什么不工作?在我看来,这是唯一明智的做法。但是,如何定义堆栈?