Can';t让Java使用if语句为变量赋值
这段代码应该从用户那里获得一个字母输入,然后根据字母值多少分为字母赋值。这是我在Java中工作的第一部分,由于某种原因,我无法使用Can';t让Java使用if语句为变量赋值,java,Java,这段代码应该从用户那里获得一个字母输入,然后根据字母值多少分为字母赋值。这是我在Java中工作的第一部分,由于某种原因,我无法使用if语句为变量赋值 import java.util.Scanner; public class LetterValues { public static void main(String args[]){ Scanner scanner = new Scanner(System.in); String letterInput1, letterI
if
语句为变量赋值
import java.util.Scanner;
public class LetterValues {
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
String letterInput1, letterInput2, letterInput3, letterInput4;
int firstLetter = 0, secondLetter = 0, thirdLetter = 0, fourthLetter = 0;
// Asks for first input letter
System.out.print("What is your first letter? ");
// Reads the first input letter
letterInput1 = scanner.next();
// Converts the first letter to upper case, prints out to check
System.out.println(letterInput1.toUpperCase());
// Prints out first letter to check
System.out.println(letterInput1);
// Assigns a value to the firstLetter int based on the value of letterInput1
if ( (letterInput1 == "A") || (letterInput1 == "E") )
{
firstLetter = 1;
}
else if ( (letterInput1 == "D") || (letterInput1 == "R") )
{
firstLetter = 2;
}
else if ( (letterInput1 == "B") || (letterInput1 == "M") )
{
firstLetter = 3;
}
else if ( (letterInput1 == "V") || (letterInput1 == "Y") )
{
firstLetter = 4;
}
else if ( (letterInput1 == "J") || (letterInput1 == "X") )
{
firstLetter = 8;
}
else
{
System.out.println("Error.");
}
System.out.println(firstLetter);
}
}
结果是:
What is your first letter? A //<--input
A
A
Error.
0
What is your second letter?
你的第一个字母是什么?A//使用equals()
比较字符串:
"A".equals(letterInput1)
使用equals()
比较字符串:
"A".equals(letterInput1)
使用equals()
比较字符串:
"A".equals(letterInput1)
使用equals()
比较字符串:
"A".equals(letterInput1)
使用equals()
而不是=
来比较字符串
理由
equals()
方法存在于java.lang.Object
类中,它应该检查对象状态的等价性!。也就是说,对象的内容。然而,=
操作符需要检查实际对象实例是否相同
范例
考虑两个不同的参考变量str1
和str2
str1 = new String("abc");
str2 = new String("abc");
如果使用equals()
您将获得TRUE
如果您使用==
System.out.println((str1==str2)?"TRUE":"FALSE");
现在您将得到FALSE
作为输出,因为str1
和str2
都指向两个不同的对象,即使它们共享相同的字符串内容。这是因为每次创建新对象时都要使用new String()
。使用equals()
而不是=
来比较字符串
理由
equals()
方法存在于java.lang.Object
类中,它应该检查对象状态的等价性!。也就是说,对象的内容。然而,=
操作符需要检查实际对象实例是否相同
范例
考虑两个不同的参考变量str1
和str2
str1 = new String("abc");
str2 = new String("abc");
如果使用equals()
您将获得TRUE
如果您使用==
System.out.println((str1==str2)?"TRUE":"FALSE");
现在您将得到FALSE
作为输出,因为str1
和str2
都指向两个不同的对象,即使它们共享相同的字符串内容。这是因为每次创建新对象时都要使用new String()
。使用equals()
而不是=
来比较字符串
理由
equals()
方法存在于java.lang.Object
类中,它应该检查对象状态的等价性!。也就是说,对象的内容。然而,=
操作符需要检查实际对象实例是否相同
范例
考虑两个不同的参考变量str1
和str2
str1 = new String("abc");
str2 = new String("abc");
如果使用equals()
您将获得TRUE
如果您使用==
System.out.println((str1==str2)?"TRUE":"FALSE");
现在您将得到FALSE
作为输出,因为str1
和str2
都指向两个不同的对象,即使它们共享相同的字符串内容。这是因为每次创建新对象时都要使用new String()
。使用equals()
而不是=
来比较字符串
理由
equals()
方法存在于java.lang.Object
类中,它应该检查对象状态的等价性!。也就是说,对象的内容。然而,=
操作符需要检查实际对象实例是否相同
范例
考虑两个不同的参考变量str1
和str2
str1 = new String("abc");
str2 = new String("abc");
如果使用equals()
您将获得TRUE
如果您使用==
System.out.println((str1==str2)?"TRUE":"FALSE");
现在您将得到FALSE
作为输出,因为str1
和str2
都指向两个不同的对象,即使它们共享相同的字符串内容。这是因为每次创建新对象时都会出现new String()
。不要使用=
比较字符串的内容。使用equals()
不要使用=
比较字符串的内容。使用equals()
不要使用=
比较字符串的内容。使用equals()
不要使用=
比较字符串的内容。使用equals()
另外,如果大小写不重要,您可以使用.equalsIgnoreCase另外,如果大小写不重要,您可以使用.equalsIgnoreCase另外,如果大小写不重要,您可以使用.equalsIgnoreCase另外,如果大小写不重要,您可以使用.equalsIgnoreCase