1. Paghahambing ng mga string
Ang lahat ng ito ay mabuti at mabuti. Ngunit makikita mo na ang s1
at s2
mga string ay talagang pareho, ibig sabihin, naglalaman ang mga ito ng parehong teksto. Kapag naghahambing ng mga string, paano mo sasabihin sa programa na hindi tumingin sa mga address ng String
mga bagay, ngunit sa kanilang nilalaman?
Upang matulungan kami dito, String
ang klase ng Java ay may equals
pamamaraan. Ang pagtawag ay ganito ang hitsura:
string1.equals(string2)
Ang pamamaraang ito ay nagbabalik true
kung ang mga string ay pareho, at false
kung sila ay hindi pareho.
Halimbawa:
Code | Tandaan |
---|---|
|
|
Higit pang mga halimbawa:
Code | Paliwanag |
---|---|
|
false |
|
true |
|
true |
|
true |
2. Case-insensitive na paghahambing ng string
Sa huling halimbawa, nakita mo na ang paghahambing ay nagbubunga ng . Sa katunayan, ang mga string ay hindi pantay. Pero..."Hello".equals("HELLO")
false
Maliwanag, ang mga string ay hindi pantay. Iyon ay, ang kanilang nilalaman ay may parehong mga titik at naiiba lamang sa kaso ng mga titik. Mayroon bang anumang paraan upang ihambing ang mga ito at ipagwalang-bahala ang kaso ng mga titik? Iyon ay, kaya na magbubunga ?"Hello".equals("HELLO")
true
At ang sagot sa tanong na ito ay oo. Sa Java, ang String
uri ay may isa pang espesyal na pamamaraan: equalsIgnoreCase
. Ang pagtawag ay ganito ang hitsura:
string1.equalsIgnoreCase(string2)
Ang pangalan ng pamamaraan ay halos isinasalin bilang paghahambing ngunit huwag pansinin ang kaso . Ang mga titik sa pangalan ng pamamaraan ay may kasamang dalawang patayong linya: ang una ay maliit na titik L
, at ang pangalawa ay malaking titik i
. Huwag hayaan na malito ka niyan.
Halimbawa:
Code | Tandaan |
---|---|
|
|
3. Halimbawa ng paghahambing ng string
Magbigay lamang tayo ng isang simpleng halimbawa: ipagpalagay na kailangan mong magpasok ng dalawang linya mula sa keyboard at tukuyin kung pareho ang mga ito. Ito ang magiging hitsura ng code:
Scanner console = new Scanner(System.in);
String a = console.nextLine();
String b = console.nextLine();
String result = a.equals(b) ? "Same" : "Different";
System.out.println(result);
4. Isang kawili-wiling nuance ng paghahambing ng string
Mayroong isang mahalagang nuance na kailangan mong malaman.
Kung ang Java compiler ay nakahanap ng maraming magkakaparehong mga string sa iyong code (partikular sa iyong code), lilikha lamang ito ng isang bagay para sa kanila upang makatipid ng memorya.
String text = "This is a very important message";
String message = "This is a very important message";
At narito kung ano ang nilalaman ng memorya bilang isang resulta:
At kung ihahambing mo text == message
dito, makakakuha ka ng true
. Kaya wag ka nang magtaka diyan.
Kung sa ilang kadahilanan kailangan mo talagang maging iba ang mga sanggunian, maaari mong isulat ito:
String text = "This is a very important message";
String message = new String ("This is a very important message");
O ito:
String text = "This is a very important message";
String message = new String (text);
Sa parehong mga kasong ito, ang text
at message
mga variable ay tumuturo sa iba't ibang mga bagay na naglalaman ng parehong teksto.
GO TO FULL VERSION