ሕብረቁምፊዎችን ለእኩልነት ለማነፃፀር የ String object’s equals
ን መጠቀም አለብዎት ወይም equalsIgnoreCase
ዘዴዎች. እንዲሁም ==
ለምን መጠቀም እንደሌለብን እናያለን ገመድ ለማነፃፀር ኦፕሬተር
በጃቫ ውስጥ ሁለት ሕብረቁምፊዎችን ማወዳደር ካስፈለግን እንዲሁም የምንጠቀምባቸውን የሕብረቁምፊዎች መያዣዎች የምንመለከት ከሆነ equals()
ዘዴ.
ለምሳሌ ፣ የሚከተሉት ቅንጥቦች “ማሰሪያ” ን ጨምሮ በሁለቱም ገጸ-ባህሪዎች ላይ እኩል መሆን አለመሆኑን ይወስናል ፡፡
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = 'Test123';
String secondString = 'Test' + 123;
String thirdString = 'TEST123';
if (firstString.equals(secondString)) {
System.out.println('first and second strings are equal');
}
if (firstString.equals(thirdString)) {
System.out.println('first and third string are equal');
}
} }
ውጤት
first and second strings are equal
ማስታወሻ:ሁለተኛው የህትመት መግለጫ የ ‹firstString› እና የ ‹ሶስተኛ ስትሪንግ› መያዣው ስለማይዛመድ አይተገበርም ፡፡በጃቫ ውስጥ ሁለት ሕብረቁምፊዎችን ማወዳደር ካስፈለግን ግን የምንጠቀምባቸውን የሕብረቁምፊዎች መያዣ ግድ የለንም equalsIgnoreCase()
ዘዴ.
ለምሳሌ ፣ ከላይ ባለው ኮድ ቅንጥስ ውስጥ እኛ ከተተካ .equals()
በ .equalsIgnoreCase()
ዘዴ ፣ ከዚያ ሁለቱም የሕትመት መግለጫዎች ይገደላሉ-
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = 'Test123';
String secondString = 'Test' + 123;
String thirdString = 'TEST123';
if (firstString.equalsIgnoreCase(secondString)) {
System.out.println('first and second strings are equal');
}
if (firstString.equalsIgnoreCase(thirdString)) {
System.out.println('first and third string are equal');
}
} }
ውጤት
first and second strings are equal
first and third string are equal
ተዛማጅ:
እነዚህ ኦፕሬተሮች በእውነቱ ማጣቀሻዎችን ይሞክራሉ ፣ እና በርካታ የ ‹ስትሪንግ› ዕቃዎች አንድ አይነት ገመድ ሊወክሉ ስለሚችሉ ፣ ይህ የተሳሳተ መልስ የመስጠት ሃላፊነት አለበት ፡፡
በምትኩ | String.equals(Object)
ይጠቀሙ ዘዴው ፣ በእሴቶቻቸው ላይ በመመርኮዝ የክርን ነገሮችን ያነፃፅራል።
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = 'Test123';
String secondString = 'Test123';
String thirdString = new String('Test123');
if (firstString == secondString) {
System.out.println('first and second strings are equal');
}
if (firstString == thirdString) {
System.out.println('first and third strings are equal');
}
} }
ውጤት
first and second strings are equal
ማስታወሻ:ሁለተኛው የህትመት መግለጫ አይተገበርም ፡፡ገመድ ከቋሚ እሴት ጋር ሲያወዳድሩ አንድ NullPointerException
እንዳያገኙ ለማረጋገጥ በእኩልዎች ግራው ላይ ያለውን ቋሚ እሴት ማስቀመጥ ይችላሉ። ሌላኛው ገመድ ከንቱ ከሆነ ፡፡
ለምሳሌ:
'baz'.equals(foo)
እያለ foo.equals('baz')
አንድ NullPointerException
ይጥላል foo ከንቱ ከሆነ ፣ 'baz'.equals(foo)
እስከ false
ይገመግማል።
ይበልጥ ሊነበብ የሚችል አማራጭ Objects.equals()
ን መጠቀም ነው ፣ ይህም በሁለቱም መለኪያዎች ላይ ባዶ ምርመራ ያደርጋል
ለምሳሌ Objects.equals(foo, 'baz')
.
ከጃቫ 1.7 ጀምሮ በመለወጫ መግለጫ ውስጥ የ ‹ስትሪንግ› ን ከቃል በቃል ማወዳደር ይቻላል ፡፡ ሕብረቁምፊው ከንቱ አለመሆኑን ያረጋግጡ ፣ አለበለዚያ ሁልጊዜ አንድ _ _ + _ | ይጥላል። ዋጋዎች NullPointerException
ን በመጠቀም ፣ ማለትም ለጉዳዩ ተጋላጭነትን በመጠቀም ይነፃፀራሉ።
String.equals
በጃቫ ውስጥ ያሉትን ክሮች ከኮድ ምሳሌዎች ጋር እንዴት ማወዳደር እንደሚቻል በዚህ ጽሑፍ ውስጥ ገለፃ አድርገናል ፡፡ የሕብረቁምፊዎቹ መያዣ ጉዳይ አስፈላጊ በሚሆንበት ጊዜ public class CompareTwoStrings {
መጠቀም አለብን እና መያዣ አስፈላጊ በማይሆንበት ጊዜ እኛ መጠቀም አለብን _ _ + _ |.
public static void main(String[] args) {
String stringToSwitch = 'A';
switch (stringToSwitch) {
case 'a':
System.out.println('a');
break;
case 'A':
System.out.println('A'); //the code goes here
break;
case 'B':
System.out.println('B');
break;
default:
break;
}
} }
በተጨማሪም ፣ እኛ _ _ + _ | መጠቀም የለብንም እንደ .equals()
ሆኖ ሕብረቁምፊዎችን ለማወዳደር ኦፕሬተር ኦፕሬተር ዋቢውን ይፈትሻል እንጂ እሴቱን አይደለም ፡፡