如何在比较字符时修复无效字符常量?

时间:2015-09-23 16:27:02

标签: java eclipse

import java.util.*;

public class StudentWelcome
{
    public static void main(String[]args)
    {
        Scanner in = new Scanner(System.in);

        System.out.print("Please enter your student login");
        char ident = in.next().charAt(0,1);

        if (ident == '19')
        {
            System.out.println("Welcome Freshman")
        }
        else if (ident == '18')
        {
            System.out.println("Welcome Sophomore")
        }
        else if (ident.equals(17))
        {
            System.out.println("Welcome Sophomore")
        }
        else if (ident.equals)
    }
}

我基本上试图通过输入确定某人是哪一年" 19johndo"或" 17daquanra"并打印正确的欢迎声明。 eclipse在第13行显示错误,表示无效的字符常量。我该怎么办?

1 个答案:

答案 0 :(得分:0)

@VGR在上面的评论中是正确的,这是基本的" Java的介绍"东西。但由于StackOverflow是一个Q& A资源,这是一个Q,我将提供一个A.

charAt(int, int)上没有String方法,因此该行甚至无法编译。如果您真的对输入String的前2个字符感兴趣,请使用substring(0, 2)。这将返回String,而不是char,因此您需要更改ident变量的类型。您还必须更新ident语句中if的比较方式,因为您尝试与(无效)char字面值进行比较。但char s不能超过一个字符,因此您需要与String字面值进行比较,例如:

if (ident.equals("19")) {

这将使您的代码得到编译,甚至可能正常工作,但它仍然不是做您似乎正在尝试做的事情的最佳方式。但是试图讨论更好的实现超出了这个问题的范围。