Java 在比较字符时,如何修复无效的字符常量?
我基本上是通过输入“19johndo”或“17daquanra”来确定某人是哪一年,并打印正确的欢迎声明。eclipse在第13行显示一个错误,该错误表示字符常量无效。我该怎么办?@VGR在上面的评论中是正确的,这是基本的“Java简介”内容。但是因为StackOverflow是一个Q&a资源,而这是一个Q,所以我将提供一个a 在Java 在比较字符时,如何修复无效的字符常量?,java,eclipse,Java,Eclipse,我基本上是通过输入“19johndo”或“17daquanra”来确定某人是哪一年,并打印正确的欢迎声明。eclipse在第13行显示一个错误,该错误表示字符常量无效。我该怎么办?@VGR在上面的评论中是正确的,这是基本的“Java简介”内容。但是因为StackOverflow是一个Q&a资源,而这是一个Q,所以我将提供一个a 在字符串上没有charAt(int,int)方法,所以该行甚至不会编译。如果您确实对输入的字符串的前两个字符感兴趣,请使用子字符串(0,2)。这将返回一个字符串,而不是字
字符串上没有charAt(int,int)
方法,所以该行甚至不会编译。如果您确实对输入的字符串的前两个字符感兴趣,请使用子字符串(0,2)
。这将返回一个字符串
,而不是字符
,因此您需要更改标识
变量的类型。您还必须更新在if
语句中比较ident
的方式,因为您试图与(无效的)char
文本进行比较。但是char
s不能超过一个字符,因此需要与String
文本进行比较,例如:
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)
}
}
这将使您的代码得以编译,甚至可以正常工作,但这仍然不是实现您所尝试的目标的最佳方式。但是试图讨论更好的实现已经超出了这个问题的范围。chatAt(0,1)
应该做什么?您是否试图从字符串的前两个字符中生成字符?你不能那样做。字符是一个字符。出于同样的原因,您不能执行'19'
或'18'
或'17'
,因为这是两个字符。请打开任何solid Java教程。阅读有关类型(字符/字符串)和比较字符串的信息检查正在比较的字符!您应该阅读并了解什么是字符串和字符。说真的,这些教程是为帮助你而设计的。特别是“数字和字符串”教程将解释字符和字符串之间的区别。
if (ident.equals("19")) {