我刚开始学习JAVA 我正在编写一个非常简单的程序来打印基于命令行参数的东西 但它没有按预期工作。
这是我的程序和输出。
应该打印“e”但是打印“n”。
请告诉我我在哪里做错了。答案 0 :(得分:2)
字符串必须与String.equals()
进行比较,因为==
运算符只会检查引用是否指向同一个对象。
if ("e".equals(e)) {
// they are equivalent strings
}
答案 1 :(得分:0)
不要对六氰化物的答案语法挑剔,但是比较一个字符串等于“e”,我认为更多的逻辑和清洁:
if (e.equals("e")) { /* e == "e" */ }
因为它说:如果我们找到的字符串e是我们正在寻找的,在这种情况下是“e”,那么就做点什么。
另一个原因是“e”只是该点的一个字符数组,e已经是一个字符串。现在我不是100%肯定这个,但我认为equals方法在字符数组的某处有一些更有效的覆盖方法。如果你将“e”放在.equals前面,“e”首先转换为String然后进行评估,即编译器不优化它。