尝试输入Char并使用compareTo时,char无法取消引用Java

时间:2018-06-16 01:07:52

标签: java if-statement char compareto charat

所以我对java很新,我一直坚持这个问题。

  

提示用户输入两个字符并将其存储在两个字符中   变量。比较变量和打印“小于   “如果第一个字符小于第二个字符。   否则,如果打印“大于”   第一个char大于第一个char。否则,打印   “等于”如果他们是平等的。

     

如果用户输入'A',则'B'打印:A小于B如果用户输入'B'   然后'A'打印:B大于A如果用户输入'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);

1 个答案:

答案 0 :(得分:0)

您的问题是使用 char firstChar; // OK firstChar = input.charAt(0); // OK if (firstChar.compareTo(secondChar) < 0) // FAIL! 变量等等。

char

char类型是基本类型。您无法在 if (firstChar < secondChar)) 上调用方法。

您需要直接对字符值进行操作...使用数字,关系或按位运算符; e.g。

firstChar

如果Character的类型为char而不是char,那么您尝试执行的操作有效。但在这种情况下,使用 private IEnumerable<StatsSnapshot> ProcessPeriodicities(ICollection<StatsSnapshot> newStats) { foreach (var s in newStats) { yield return ProcessPeriodicity(s, PeriodicityEnum.LastMinute); yield return ProcessPeriodicity(s, PeriodicityEnum.LastHour); yield return ProcessPeriodicity(s, PeriodicityEnum.LastDay); yield return ProcessPeriodicity(s, PeriodicityEnum.LastWeek); yield return ProcessPeriodicity(s, PeriodicityEnum.LastMonth); } } 更简单,更快,更少代码等等。

相关问题