|
|
|
int x, y; x = ...; y = ...; x == y evaluates to true if the value stored in variable x is equal to the value stored in variable y |
String x, y; x = ...; y = ...; x == y evaluates to true if the value stored in variable x is equal to the value stored in variable y |
What is the value that is stored in a String typed variable ?
|
In other words:
String x, y; x = ...; y = ...; x == y evaluates to true if x and y point to the same location in memory |
|
public class StringEq1 { public static void main( String[] args ) { String a, b, c; a = "Hello"; a = a + " World"; // a = "Hello World" b = a; // b points to the same string as a System.out.println("a = " + a); System.out.println("b = " + b); if ( a == b ) System.out.println("a == b"); else System.out.println("a != b"); /* ============================================================ */ c = "Hello World"; // c contains the same string as a // But: c does not point to the same string System.out.println("a = " + a); System.out.println("c = " + c); if ( a == c ) System.out.println("a == c"); else System.out.println("a != c"); } } |
Output of program:
a = Hello World b = Hello World a == b a = Hello World c = Hello World a != c |
How to run the program:
|
s1.equals( s2 )
returns:
true if string s1 and s2 contains the same characters
false otherwise
|
public class StringEq1 { public static void main( String[] args ) { String a, b, c; a = "Hello"; a = a + " World"; // a = "Hello World" b = a; // b points to the same string as a System.out.println("a = " + a); System.out.println("b = " + b); if ( a.equals(b) ) System.out.println("a EQUALS b"); else System.out.println("a NOT EQUALS b"); /* ============================================================ */ c = "Hello World"; // c contains the same string as a // But: c does not point to the same string System.out.println("a = " + a); System.out.println("c = " + c); if ( a.equals(c) ) System.out.println("a EQUALS c"); else System.out.println("a NOT EQUALS c"); } } |
Output:
a = Hello World b = Hello World a EQUALS b a = Hello World c = Hello World a EQUALS c (because c contains the same characters as a !!!) |
How to run the program:
|
s1.equalsIgnoreCase( s2 )
returns:
true if string s1 and s2 contains the same characters when ignoring case difference
false otherwise
|
Examples:
"abc".equalsIgnoreCase( "ABC" ) returns true |
Java program that illustrates this fact:
public class StringEq3 { public static void main( String[] args ) { System.out.println( " \"abc\".equals( \"ABC\" ) = " + "abc".equals( "ABC" ) ) ; System.out.println( " \"abc\".equalsIgnoreCase( \"ABC\" ) = " + "abc".equalsIgnoreCase( "ABC" ) ) ; } } |
Output:
"abc".equals( "ABC" ) = false "abc".equalsIgnoreCase( "ABC" ) = true |
How to run the program:
|
s1.compareTo( s2 )
returns:
0 if s1.equals(s2)
< 0 if s1 lexicographically preceeds s2
> 0 if s1 lexicographically succeeds s2
|
0 NUL 1 SOH 2 STX 3 ETX 4 EOT 5 ENQ 6 ACK 7 BEL 8 BS 9 HT 10 NL 11 VT 12 NP 13 CR 14 SO 15 SI 16 DLE 17 DC1 18 DC2 19 DC3 20 DC4 21 NAK 22 SYN 23 ETB 24 CAN 25 EM 26 SUB 27 ESC 28 FS 29 GS 30 RS 31 US 32 SP 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 DEL |
In other words, a partial lexicographical ordering is:
'A' < 'B' < 'C' < ... < 'Z' < '[' < '\' < ... < 'a' < 'b' < ... < 'z' ... |
"abc".compareTo( "abc" ) returns 0 "abc".compareTo( "xyz" ) returns < 0 "abc".compareTo( "ABC" ) returns > 0 |
public class StringComp1 { public static void main( String[] args ) { System.out.println(" \"abc\".compareTo( \"abc\" ) = " + "abc".compareTo( "abc" ) ); System.out.println(" \"abc\".compareTo( \"xyz\" ) = " + "abc".compareTo( "xyz" ) ); System.out.println(" \"abc\".compareTo( \"ABC\" ) = " + "abc".compareTo( "ABC" ) ); } } |
Output:
"abc".compareTo( "abc" ) = 0 (so: "abc" is equals to "abc") "abc".compareTo( "xyz" ) = -23 (so: "abc" < "xyz") "abc".compareTo( "ABC" ) = 32 (so: "abc" > "ABC") |
How to run the program:
|
s1.compareToIgnoreCase( s2 )
returns:
0 if s1.equals(s2) ignoring upper/lower case
< 0 if s1 lexicographically preceeds s2 ignoring upper/lower case
> 0 if s1 lexicographically succeeds s2 ignoring upper/lower case
|
"abc".compareToIgnoreCase( "abc" ) returns 0 "abc".compareToIgnoreCase( "xyz" ) returns < 0 "abc".compareToIgnoreCase( "ABC" ) returns 0 !!! |
public class StringComp1 { public static void main( String[] args ) { System.out.println(" \"abc\".compareToIgnoreCase( \"abc\" ) = " + "abc".compareToIgnoreCase( "abc" ) ); System.out.println(" \"abc\".compareToIgnoreCase( \"xyz\" ) = " + "abc".compareToIgnoreCase( "xyz" ) ); System.out.println(" \"abc\".compareToIgnoreCase( \"ABC\" ) = " + "abc".compareToIgnoreCase( "ABC" ) ); } } |
Output:
"abc".compareToIgnoreCase( "abc" ) = 0 (so: "abc" is equals to "abc") "abc".compareToIgnoreCase( "xyz" ) = -23 (so: "abc" < "xyz") "abc".compareToIgnoreCase( "ABC" ) = 0 (so: "abc" is now equal to "ABC") |
How to run the program:
|