在Java中将Stack值与String进行比较

Nit*_*rma 0 java comparison stack boolean

我正在尝试以下代码:

import java.util.Stack;
public class HelloWorld{

 public static void main(String []args){
    Stack s=new Stack();
    s.push(5-4);
    s.push(9);
    s.push(51);
    if(s.get(1).equals("9"))
        System.out.println("yes its comparable");
    System.out.println(s.get(1));

 }
}
Run Code Online (Sandbox Code Playgroud)

实际输出是:

9
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

yes its comparable
9
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚.我已经尝试了s.get(1)=="9"但它也不起作用.这可能背后的关键是什么?它们都不是字符串吗?或者一个是字符串一是对象,但它们仍然具有可比性.有人可以开导我这个吗?

Cod*_*gue 7

9是一个整数."9"是一个字符串.

s.get(1).equals("9"); // false
s.get(1).equals(9); // true
Run Code Online (Sandbox Code Playgroud)