Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t让Java使用if语句为变量赋值_Java - Fatal编程技术网

Can';t让Java使用if语句为变量赋值

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

这段代码应该从用户那里获得一个字母输入,然后根据字母值多少分为字母赋值。这是我在Java中工作的第一部分,由于某种原因,我无法使用
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