Java 如何比较字符串和字符类型?

Java 如何比较字符串和字符类型?,java,Java,因此,用户只能输入一个字符C或C…。因此,基本上,在读取行中,它无法读取字符数据类型…因此,我被迫在字符串中声明它,但当我在if语句中的某个条件下使用它时,我在编译时出错,字符串和字符是不兼容的类型。。。 我知道这是不相容的,但我能做什么???我不能将变量optionLetter声明为character,而且我只需要检查用户是否输入了c 我怎么检查 我尝试了.equals方法,但仍然不起作用。您可以尝试获取字符串的第一个字符: System.out.print("Enter C for

因此,用户只能输入一个字符C或C…。因此,基本上,在读取行中,它无法读取字符数据类型…因此,我被迫在字符串中声明它,但当我在if语句中的某个条件下使用它时,我在编译时出错,字符串和字符是不兼容的类型。。。 我知道这是不相容的,但我能做什么???我不能将变量optionLetter声明为character,而且我只需要检查用户是否输入了c

我怎么检查


我尝试了.equals方法,但仍然不起作用。

您可以尝试获取字符串的第一个字符:

    System.out.print("Enter C for Celsius or F for Farenheit: ");
    String optionLetter = kb.readLine();

    if (optionLetter == 'c')
    {
        System.out.print("Enter temperature: ");
        double tempC = Integer.parseInt(kb.readLine());

        double degreesF = (9 * (tempC/5) +32);

        System.out.println(tempC + " celcius is " + degreesF + " in farenheit.");
    }
}
或者您可以将其与字符串“c”进行比较,而不是与字符“c”进行比较

if (optionLetter.charAt(0) == 'c')
您甚至可以使其不区分大小写:

if (optionLetter.equals("c"))

双引号(
)表示
字符串
对象,而单引号(
)指示
char
原语。
String
类有一个方法
equals
将其与其他对象进行比较。要比较char,只需使用
=

您需要比较字符串中的第一个字符。它应该只有一个字符,即使您无法将整个字符串与一个字符进行比较

您的代码将是:

if (optionLetter.equalsIgnoreCase("c"))
将其与字符串c进行比较也可以:

if(optionLetter.charAt(0) == 'c') 
{
    //do stuff here
}

在Java中使用单引号表示字符
,而双引号表示字符串

if(optionLetter.equals("c")) 
{
    //do stuff here
}
或者您可能更喜欢检查第一个字符,如

if (optionLetter.equalsIgnoreCase("c")) {
    // ...
} else if (optionLetter.equalsIgnoreCase("f")) {
    // ...
}

@对不起,那是个打字错误,应该是
“c“
。它很有效!!!!”!!!!谢谢所以我现在知道双引号和单引号各不相同。。。。。非常感谢。。。我将开始阅读更多关于它的内容…:D@Rae很高兴我能帮忙!哦!!!非常感谢你。。。我不知道这个代码在哪里有一个数字0…我现在就开始阅读…谢谢!!!零是指字符串中的第一个字符。在示例中:“String abc=“abcdef”;,abc.charAt(0)=a,abc.charAt(1)=b,依此类推,直到abc.charAt(5)=f.woah。。。。谢谢…谢谢你,我现在知道双引号和单引号各不相同…谢谢!!!!
if (Character.toLowerCase(optionLetter.charAt(0)) == 'c') {
    // ...
} else if (Character.toLowerCase(optionLetter.charAt(0)) == 'f') {
    // ...
}