所以我对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);
答案 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);
}
}
更简单,更快,更少代码等等。