我正在尝试创建一个程序,用户输入两个单词并确定这些单词是否相同。
import java.util.Scanner;
public class L7E3 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System. in );
String word1, word2;
System.out.println("Please enter a word: ");
word1 = keyboard.nextLine();
System.out.println("Please enter a word: ");
word2 = keyboard.nextLine();
if (word1 == word2) {
System.out.println("The words are " + word1 + " and " + word2 + ". These words are the same.");
} else {
System.out.println("The words are " + word1 + " and " + word2 + ". These words are not the same.");
}
}
}
我认为word1 == word2可以确定这两个字符串是否相等,我正在使用JGrasp,无论输入如何,它都会直接转到我的else选项。我对字符串做错了吗?
答案 0 :(得分:0)
if(word1.equals(word2))
==
没有按照您的想法行事。 ==
基本上比较了两个String
变量的内存位置,并且仅当它们位于同一内存位置时才返回true
。 String.equals
方法比较字符串的内容,如果它们具有相同的字符,则返回true
。
答案 1 :(得分:0)
答案 2 :(得分:0)
对于字符串,您需要使用.equals()
函数而不是==
相等运算符。
if(word1.equals(word2))
如果您想测试两个单词是否相同,而忽略大小写(“This”与“this”相同,那么您需要执行以下操作:
if (word1.toLowerCase().equals(word2.toLowerCase()))
同样在您的特定示例中,您可能希望从单词之前和之后删除不必要的空格(“word1”应变为“word1”)。您可以使用trim()
功能执行此操作:
word1 = word.trim();