首页 > 解决方案 > 尝试输入 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);

标签: javaif-statementcharcomparetocharat

解决方案


您的问题在于您使用firstChar变量等的方式。

  char firstChar; // OK

  firstChar = input.charAt(0); // OK

  if (firstChar.compareTo(secondChar) < 0)   // FAIL!

char类型是原始类型。您不能在char.

您需要直接对字符值进行操作……使用数字、关系或位运算符;例如

  if (firstChar < secondChar)) 

如果不是的类型,您尝试执行的操作起作用。但在这种情况下,使用更简单、更快、代码更少等等。firstCharCharactercharchar


推荐阅读