I'm trying to make a program that will read in a string and compare each character in the string to see if it is in alphabetical order.
public class Main
{
public static void Main ( String[] args)
{
System.out.println("#Please enter the string: ");
String s = BIO.getString();
while(!s.equals("END")){
int length = s.length();
String sLC = s.toLowerCase();
int count = 0;
boolean inOrder = true;
for(int i = 0; i < length - 1 ; i++){
if(sLC.charAt(i).compareTo(sLC.charAt(i+1)) > 0) {
inOrder = false;
break;
}
}
System.out.println("#Please enter the string: ");
s = BIO.getString();
}
}
}
I am using blueJ and when I try to compile this it is giving me the error 'char cannot be dereferenced and highlighting the 'compareTo' method in my IF statement?
sLC.charAt(i)
gives you primitive char. And you cannot invokecompareTo
on primitives. You need to wrap it in a Character wrapper object, or just usecomparison operator
.or simply: -
.charAt()
returns achar
, which is a primitive. It does not have a.compareTo()
method.char
behaves much like a (smaller)int
; use the following instead: