1. Paghahambing ng mga string

Ang lahat ng ito ay mabuti at mabuti. Ngunit makikita mo na ang s1at s2mga 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 Stringmga bagay, ngunit sa kanilang nilalaman?

Upang matulungan kami dito, Stringang klase ng Java ay may equalspamamaraan. Ang pagtawag ay ganito ang hitsura:

string1.equals(string2)
Paghahambing ng dalawang string

Ang pamamaraang ito ay nagbabalik truekung ang mga string ay pareho, at falsekung sila ay hindi pareho.

Halimbawa:

Code Tandaan
String s1 = "Hello";
String s2 = "HELLO";
String s3 = s1.toUpperCase();

System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s2.equals(s3));
// Hello
// HELLO
// HELLO

false // They are different
false // They are different
true // They are the same, even though the addresses are different

Higit pang mga halimbawa:

Code Paliwanag
"Hello".equals("HELLO")
false
String s = "Hello";
"Hello".equals(s);
true
String s = "Hel";
"Hello".equals(s + "lo");
true
String s = "H";
(s + "ello").equals(s + "ello");
true

4
Gawain
Java Syntax,  antasaralin
Naka-lock
Minimum of two numbers
All search and sort algorithms are based on comparisons. You'll be able to handle these very soon, if you so desire. In the meantime, we suggest starting with something small: write a program to find the minimum of two numbers. Find it and then display it. And if the numbers are the same, display either of them.
4
Gawain
Java Syntax,  antasaralin
Naka-lock
Maximum of four numbers
Finding the maximum is an n-ary operation (an operation on n numbers) that returns the largest of several numbers. Never mind. We have no need for such definitions at the secret CodeGym center. We're here to learn how to write code. In this task, you need to use the keyboard to enter four numbers. Then determine the largest of them and display it on the screen.

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 Stringuri 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
String s1 = "Hello";
String s2 = "HELLO";
String s3 = s1.toUpperCase();

System.out.println(s1.equalsIgnoreCase(s2));
System.out.println(s1.equalsIgnoreCase(s3));
System.out.println(s2.equalsIgnoreCase(s3));
// Hello
// HELLO
// HELLO

true
true
true

8
Gawain
Java Syntax,  antasaralin
Naka-lock
Sorting three numbers
Planet Linear Chaos is populated by isomorphs. They are believed to have invented sorting algorithms. Everything in their heads is extremely well-ordered. They only issue planetary visas to people who know at least 7 sorting algorithms. Let's take our first step toward Linear Chaos: Read three numbers from the keyboard, put them in descending order, and then display them on the screen.

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:

paghahambing ng string

At kung ihahambing mo text == messagedito, 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 textat messagemga variable ay tumuturo sa iba't ibang mga bagay na naglalaman ng parehong teksto.


4
Gawain
Java Syntax,  antasaralin
Naka-lock
Jen or Jen?
Jen, Company X's admin, learned how to pilot a space ship and flew away to another planet. People in Company X are good and sincere. It's just that they're scatterbrained and they mix up names. So they decided that the new administrator would also be called Jen. Let's help Company X find their Jen: write a program that checks the identity of two entered names.