Hoe om snare in Java te vergelyk

Om Strings vir gelykheid te vergelyk, moet u die String-voorwerp se equals gebruik of equalsIgnoreCase metodes. Ons sal ook sien waarom ons nie die == moet gebruik nie operateur om snare te vergelyk.



Vergelyk snare met gelyke () Metode

As ons twee snare in java moet vergelyk en ook omgee vir die omhulsel van die snare, kan ons die equals() metode.

Die volgende fragment sal byvoorbeeld bepaal of die twee gevalle van String gelyk is aan alle karakters, insluitend omhulsel:


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');
}
} }

Uitset:

first and second strings are equal Nota:Die tweede drukverklaring word nie uitgevoer nie omdat die omhulsel van firstString en thirdString nie ooreenstem nie.

Vergelyk stringe met gelykeIgnoreCase () -metode

As ons twee snare in Java moet vergelyk, maar nie omgee vir die omhulsel van die snare nie, kan ons die equalsIgnoreCase() metode.


Byvoorbeeld, in die bostaande kode, as ons .equals() vervang het met .equalsIgnoreCase() metode, dan word albei drukstate uitgevoer:

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');
}
} }

Uitset:

first and second strings are equal
first and third string are equal

Verwante:



Moenie die operator == gebruik om snare te vergelyk nie

Nota:As u twee snare in Java vergelyk, moet ons nie die == of ! = operateurs.

Hierdie operators toets eintlik verwysings, en aangesien verskeie String-voorwerpe dieselfde String kan voorstel, kan dit die verkeerde antwoord gee.


Gebruik eerder die String.equals(Object) metode, wat die String-voorwerpe op grond van hul waardes sal vergelyk.

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');
}
} }

Uitset:

first and second strings are equal Nota:Die tweede drukverklaring word nie uitgevoer nie.

Vergelyk stringe met konstante waardes

As u 'n string met 'n konstante waarde vergelyk, kan u die konstante waarde aan die linkerkant van gelyke plaas om te verseker dat u geen NullPointerException as die ander string nul is.

Byvoorbeeld:


'baz'.equals(foo)

Terwyl foo.equals('baz') sal 'n NullPointerException gooi as foo nul is, 'baz'.equals(foo) sal evalueer tot false.

'N Leesbaarder alternatief is om Objects.equals() te gebruik, wat op beide parameters 'n nulkontrole doen:

bv. Objects.equals(foo, 'baz').



Vergelyk snare in 'n skakelverklaring

Met betrekking tot Java 1.7 is dit moontlik om 'n String-veranderlike met literale in 'n skakelverklaring te vergelyk. Maak seker dat die string nie nul is nie, anders gooi dit altyd 'n NullPointerException Waardes word vergelyk met behulp van String.equals, dws hooflettergevoelig.


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;
}
} }

Afsluiting

In hierdie pos het ons verduidelik hoe om snare in java met kode-voorbeelde te vergelyk. As omhulsel van die snare belangrik is, moet ons .equals() gebruik en as omhulsel nie belangrik is nie, moet ons .equalsIgnoreCase() gebruik.

Verder moet ons nie die == gebruik nie operateur om snare te vergelyk, as die == operateur die verwysing en nie die waarde nie.