java - 如何比较字符串和字符类型?

标签 java

    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...所以基本上在 readLine 中,它无法读取字符数据类型...所以我强制在字符串中声明它,但是当我在 a 中使用它时if 语句中的条件我在编译过程中收到错误,字符串和字符是不兼容的类型... 我知道它不兼容,但我能做什么???我无法将变量 optionLetter 声明为字符,而且我只需要检查用户是否输入 c???

我要如何检查...??

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

最佳答案

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

if (optionLetter.charAt(0) == 'c')

或者您可以将其与字符串“c”而不是字符“c”进行比较。

if (optionLetter.equals("c"))

您甚至可以使其不区分大小写:

if (optionLetter.equalsIgnoreCase("c"))

双引号 (") 表示 String 对象,而单引号 (') 表示 char 基元。 String 类有一个方法 equals 可以将其与其他对象进行比较。要比较字符,您可以使用 ==

关于java - 如何比较字符串和字符类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27210027/

相关文章:

java - 使用 Spring Integration 使 ssl-context-support 有条件地使用 tcp-connection-factory

Java ASM树API : How to pretttyprint AbstractInstructionNode?

java - 如何在android中获取IP地址的主机名?

java - 在 Java 中从 JNI 设置值 : JNI java. lang.NoSuchFieldError

java - 如何在 JScrollPane 上显示按钮数组?

java - 在 Java 构建路径上找不到 "javax.servlet.http.HttpServlet"

java - 你如何在 Java 中注释掉整个类?

java - Android 模拟器失败

java - 如何从字符串转换为整数?使用 valueOf() 继续获取 NumberFormatException;

java - org.apache.catalina.LifecycleException : Failed to start component [StandardEngine[Catalina]. StandardHost[localhost].StandardContext[]] - tomcat 8.5