在java中比较char的问题

时间:2016-09-20 04:37:20

标签: java java.util.scanner

    import java.util.Scanner;

    public class wheresCarlson
    {
    // instance variables - replace the example below with your own
    public wheresCarlson()
    {
        // initialise instance variables
        Scanner sc = new Scanner(System.in);

        print("Where is Carlson?");
        print("Enter the date below to find out: (MM/DD/YYYY)");

        String date = sc.next();

        print(date);

        int value = date.charAt(4);

        if (value == 1) {
            print("Carlson's alarm didn't go off");
        }


    }


    public String print(String x)
    {
        System.out.println(x);

        return x;
    }

}

我正在尝试运行if / else运行,具体取决于日期是什么,但是,如果使用扫描程序的输入运行if / else,我无法得到这个。是不是可以比较Java中的字符?

3 个答案:

答案 0 :(得分:3)

扫描仪没有问题,但代码有点问题:

int value = date.charAt(4);

在这里看到你要做的是将字符保存为整数,因此你的if条件永远不会执行:

char value = date.charAt(4);
if(value == '1')
{...}

这应该有用。

答案 1 :(得分:2)

你在解释错误的东西。获取日期字符串的字符时,字符是"字母"。每个char由十进制值表示。看看ASCII表。 char" 1"的值将是49。 因此,您可能希望比较字符或将char解析为int表示。

比较字符:

if(value == '1'){...}

转换为int然后比较:

int intValue = Character.getNumericValue(str.charAt(4));
if(intValue == 1){...}

答案 2 :(得分:0)

您需要获取char值,而不是int值

char value = date.charAt(4);

然后比较为char

if (value == '1') {