Java Reference
In-Depth Information
TABLE 2 . 4 :
Comparison of
String
elements.
What we want to write What we must write
s1==s2
s1.equals(s2)
or
s1.compareTo(s2)==0
s1>s2
s1.compareTo(s2)>0
s1<s2
s1.compareTo(s2)<0
7. If
s
is equal to
"F"
, then tell the user the grade is lower than 60.
The first two lines of the algorithm can be implemented as follows.
System. out . print (
"Enter letter grade: "
);
Scanner keyboard =
new
Scanner(System. in) ;
String s = keyboard . next () ;
The code uses the
next
method. It returns the next string that is typed. Note that Java
does not have a
nextChar
method that reads a single character from the keyboard. The
next
method reads characters from the input until a delimiter, such as space or new line, is
reached. If we want to read a whole line from the keyboard, then we can call the
nextLine
method. Note as well that a
String
behaves similar to a primitive type (e.g., integer). We
can define the string variable
s
by simply typing the following command.
String s ;
Similarly, we can assign a value to a string as follows.
s=
"cat"
;
Remember that string literals are surrounded by double quotes. One major difference
between a
String
and the other primitive types is that strings cannot be compared the
same way as integers. You can still compare two strings for equality, but you need to use
the
equals
method instead of “==”. Similarly, you can compare two strings relative to their
lexicographical ordering. A lexicographical ordering of two strings relates to how they will
appear in a dictionary. For example, the string
"abc"
will appear before the string
"de"
.
Note that every character has an ASCII code; see Figure 2.8. Two strings are compared
by comparing the ASCII code of their first character. If the first characters have the same
code, then the ASCII code of the second characters are compared and so on. The
compareTo
method is used to compare two strings. Table 2.4 summarizes the two methods.
Note that the
compareTo
method returns a positive integer when the first string is bigger,
0 when the two strings are the same, and a negative integer when the first string is smaller.
Therefore, in order to check if two strings are the same, we can either write
s1.equals(s2)
or
s1.compareTo(s2) == 0
.
Going back to our original problem, we can check the value of the string
s
as follows.
if
(s.equals(
"A"
))
{
System. out . println (
"Your grade is between 90 and 100"
);
if
(s.equals(
"B"
))
{
System. out . println (
"Your grade is between 80 and 89"
);
if
(s.equals(
"C"
))
{
System. out . println (
"Your grade is between 70 and 79"
);
if
(s.equals(
"D"
))
{
System. out . println (
"Your grade is between 60 and 69"
);
}