我试图让它成为当我输入希望时,b会保存希望,然后它会识别c == b,然后你就会得到图片。我该怎么办?我是Java的新手,如果这不是一件容易的事,我道歉。
package encryption;
import java.util.Scanner;
public class Encrypt
{
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
String test1 = new String("Enter now: ");
String d = new String("Success!");
String e = new String("Failure");
String b = new String();
String c = "hope"
System.out.print("Enter text: ");
b = scan.next();
if (b == c)
System.out.println("\"" + d + "\"");
else
System.out.println("\"" + e + "\"");
}}
答案 0 :(得分:6)
使用if b.equals(c)
因为b==c
比较了java中的引用。它告诉我们两个对象是否都指向相同的内存位置。
因此,如果您需要检查它们的值是否相等,请始终使用equals
方法。
答案 1 :(得分:2)
if (b == c)
使用equals来比较字符串:
if (b.equals(c))
==比较引用,而不是值,因此每次都会出现错误。等于比较值。
This链接在==,equals,compareTo,...
之间提供了一个很好的解释答案 2 :(得分:1)
要测试Java中字符串的等效性,您需要使用equals
方法:
if(c.equals(b)) {
...
}
==
运算符测试两个变量是否指向内存中的相同位置。你有两个字符串具有相同的“值”(读取:文本),但存储在内存中的两个不同位置。
答案 3 :(得分:1)
c == b
测试引用相等性 - 即引用指向同一个对象。您需要equals
b.equals(c)
答案 4 :(得分:0)
两件事:
Strings
对a == b
进行比较,请使用a.equals(b)
。 ==
运算符询问两个Strings
是否是相同的物理内存块; equals()
方法询问它们是否包含相同的字符。你想要第二个!new String()
;只有像"hope"
这样的双引号字符串才是String
对象。使用new String()
只会创建不需要的对象并使事情陷入困境。答案 5 :(得分:0)
b==c
检查b
和c
是否引用相同的字符串,而b.equals(c)
检查其值是否相等,这就是你我正试图这样做。
答案 6 :(得分:0)
您的问题不是正确的阅读文档。 改为使用String.equals()。