java - 尝试输入 Char 并使用 compareTo 时无法取消引用 Java
问题描述
所以我对java很陌生,我一直被困在这个问题上。
提示用户输入两个字符并将它们存储在两个 char 变量中。如果第一个字符小于第二个字符,则比较变量并打印“小于”。否则,如果第一个字符大于第一个字符,则打印“大于”。否则,如果它们相等,则打印“等于”。
如果用户输入'A'则'B'打印:A小于B如果用户输入'B'则'A'打印:B大于A如果用户输入'A'则'A'打印:A等于一个
注意:如果用户输入字符 A 和 B,则会打印上面的输出。如果用户输入其他字母,则会打印这些字母。这就是变数的力量!
Scanner letter = new Scanner(System.in);
String input;
char firstChar;
char secondChar;
System.out.println("Enter two characters:");
input = letter.nextLine();
firstChar = input.charAt(0);
input = letter.nextLine();
secondChar = input.charAt(0);
if (firstChar.compareTo(secondChar) < 0)
{
System.out.println(firstChar+ " is less than " +secondChar+ "");
}
if (firstChar.compareTo(secondChar) > 0)
{
System.out.println(firstChar+ " is greater than " +secondChar+ "");
}
if (firstChar.compareTo(secondChar) == 0)
{
System.out.println(firstChar+ " is equal to " +secondChar+ "");
}
我不确定我是否需要字符串,或者我是否可以使用
firstChar = letter.next().charAt(0);
解决方案
您的问题在于您使用firstChar
变量等的方式。
char firstChar; // OK
firstChar = input.charAt(0); // OK
if (firstChar.compareTo(secondChar) < 0) // FAIL!
该char
类型是原始类型。您不能在char
.
您需要直接对字符值进行操作……使用数字、关系或位运算符;例如
if (firstChar < secondChar))
如果不是的类型,您尝试执行的操作会起作用。但在这种情况下,使用更简单、更快、代码更少等等。firstChar
Character
char
char
推荐阅读
- linux - CallerFilePathAttribute 未在 azure 的 linux 容器应用服务上返回具有有效目录分隔符的文件路径
- r - 如何按顺序找到向量的最小值
- oracle - PLSQL 语句不检索数据库中存储的不同字符集(垃圾)数字类型
- mysql - 如何在终端或 GUI 中访问 mysql 社区服务器?
- amazon-web-services - 仅允许删除用户创建的存储桶的 S3 策略
- html - 所有列表项(连接)的边框底部,它将如何工作?
- android - fusedLocationProviderClient.requestLocationUpdates(mLocationRequest, mLocationCallback, Looper.myLooper()) 使 android 应用程序崩溃
- python - 当提供 boot_volume 而不是图像时,python openstack 客户端创建服务器失败
- google-chrome - 如何更改 Chrome 媒体设备 API
- tfs - TFS:更改自定义添加状态的状态类别