java string compareto method with programming examples
В този урок ще научим за метода на Java String compareTo () и ще видим как и кога да използвам compareTo в Java заедно със синтаксиса и примерите:
Ще разберете как да манипулирате Java String с помощта на метода compareTo () Java. Изходните типове, които ще получим чрез метода Java compareTo (), също ще бъдат разгледани в този урок.
След като прочетете този урок, определено ще можете да разберете и напишете Java String програмите, които изискват метод .compareTo () за манипулиране на String.
=> Вижте Перфектното ръководство за обучение по Java тук.
Какво ще научите:
Метод Java String compareTo ()
Методът Java String compareTo () се използва, за да се провери дали два низа са идентични или не. Както подсказва името, той сравнява два дадени низа и установява дали те са еднакви или кой е по-голям.
Типът на връщане на Java метод на сравнениеTo () е цяло число и синтаксисът е даден като:
int compareTo(String str)
В горния синтаксис str е променлива String, която се сравнява с извикващия String.
Например: String1.compareTo (String2);
Друга разновидност на Java compareTo () е
int compareTo(Object obj)
В горния синтаксис ще сравним String с Object obj.
Например ,String1.compareTo („Това е низ обект“);
Тук „Това е низ обект“ е аргумент, който предаваме на compareTo () и сравнява този със String1.
Видове изходни методи на Java compareTo ()
Изходът има три типа, които се основават на изходната стойност.
По-долу е таблицата, която обяснява и трите вида изходни стойности.
compareTo () Изходна стойност | Описание |
---|---|
Нула | Две струни са равни. |
По-голямо от нула | Извикващият низ е по-голям от str. |
По-малко от нула | Извикващият низ е по-малък от str. |
Нека разберем подробно тези три варианта с помощта на пример.
Пример за програмиране
Ето пример за метод на compareTo () Java. Сравнението се основава на разликата в ASCII стойността на символите. Най-общо, String е по-малък от другия, ако е пред другия в речника.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'Grand Theft Auto'; String str2 = 'Assassin Creed'; String str3 = 'Call of Duty'; String str4 = 'Need for Speed'; String str5 = 'Grand Theft Auto'; System.out.println(str1.compareTo(str2)); // Since 'A' is greater than 'G' by 6 characters, so it will return 6 System.out.println(str2.compareTo(str3)); // Since 'C' is smaller than 'A' by 2 characters, so it will return -2 System.out.println(str3.compareTo(str4)); //Since 'N' is smaller than 'C' by 11 characters, so it will return -11 System.out.println(str4.compareTo(str1)); //Since 'G' is Greater than 'N' by 7 characters, so it will return 7 System.out.println(str1.compareTo(str5)); //Strings are equal } }
Изход:
Обяснение на пример
В горния пример взехме пет входни низа и извършихме основно сравнение между тях, използвайки метода .compareTo () Java. При първото сравнение имаме „A“ по-голямо от „G“ с 6 знака от азбучната поредица, така че връща +6. При второто сравнение имаме „C“ по-малко от „A“ с 2 знака, така че връща -2.
В последното сравнение (между str1 и str5), тъй като и двата низа са равни, той връща 0.
Различни сценарии
Нека разберем подробно метода .compareTo (). Тук ще се опитаме да анализираме различни сценарии и резултатите от всеки отделен случай.
Сценарий 1: Помислете за следните два низа. Ще ги сравним и ще видим резултата.
String str1 = „Тестване на софтуера“;
String str2 = „Помощ за тестване на софтуер“;
Какъв ще бъде изходът на str1.compareTo (str2)?
Отговор: Тъй като str2 съдържа 5 знака (едно интервал + четири знака) повече от първия String. Изходът трябва да бъде -5. По същия начин, когато сравняваме str2 с str1, изходът трябва да бъде +5.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'Software Testing'; String str2 = 'Software Testing Help'; System.out.println(str1.compareTo(str2)); // Since str2 contains 5 characters more than the str1, output should be -5 System.out.println(str2.compareTo(str1)); // Since str2 contains 5 characters less than the str1, output should be +5 } }
Изход:
Сценарий 2: Помислете за следните два низа. Ще ги сравним и ще видим резултата.
Низ str1 = “”;
Низ str2 = '';
инструменти за маскиране на данни за SQL сървър
Какъв ще бъде изходът на str1.compareTo (str2)?
Отговор: Тъй като str2 съдържа един символ (интервал) повече от str1, той трябва да даде изхода като -1.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = ''; String str2 = ' '; System.out.println(str1.compareTo(str2)); //Since str2 contains one character more than str1, it will give -1 System.out.println(str2.compareTo(str1)); //Since str1 contains one character less than str1, it will give 1 } }
Изход:
Сценарий 3: Помислете за следните два низа. Ще ги сравним и ще видим резултата.
String str1 = “SAKET”;
Низ str2 = “saket”;
Какъв ще бъде изходът на str1.compareTo (str2)?
Отговор: Тук низовете са равни, но str1 има главни букви, докато str2 има малки букви. Това беше ограничението на метода Java compareTo (). Резултатът, който ще получим, ще бъде ненулев. За да преодолее този проблем, Java представи друг вариант на метода .compareTo (), който е
.compareToIgnoreCase ()
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'SAKET'; String str2 = 'saket'; System.out.println(str1.compareTo(str2)); //The ASCII representation of the lowercase and uppercase has a difference of 32 } }
Изход:
Метод Java String compareToIgnoreCase ()
Тъй като обсъдихме проблема в случай на несъответствие (Scenario3), вече имаме друг вариант на .compareTo () метод, който ще игнорира несъответствието на случаите на низовете.
Синтаксисът на този метод е даден като
int compareToIgnoreCase(String str)
Всичко останало остава същото, освен факта, че .compareToIgnoreCase () не взема предвид несъответствието на случая.
Пример за програмиране
Ето пример за метод на compareTo () Java. В този пример илюстрирахме разликата в изходите на Java compareTo () и compareToIgnoreCase (). Java compareTo () ще даде разлика от -32, докато compareToIgnoreCase () ще даде разлика от 0.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = 'SAKET'; String str2 = 'saket'; System.out.println(str1.compareTo(str2)); System.out.println(str1.compareToIgnoreCase(str2)); } }
Изход:
Обяснение на пример:
В горния пример взехме два низа, които имат една и съща стойност, запазвайки един низ в главни и други в малки букви. Сега методът .compareTo () на Java ще предостави резултати въз основа на ASCII разликата в стойността на малките и големите букви, тъй като ще вземе под внимание случая на символите.
Но Java .compareToIgnoreCase () няма да вземе предвид знака и ще даде резултат като 0, което означава, че и двата низа са равни.
често задавани въпроси
В # 1) Каква е разликата между ==, equals и .compareTo ()?
Отговор: По-долу са изброени основните разлики между ==, equals () и compareTo ().
! ГРЕШКА! неочакван оператор '=' | равно на() | сравни с() |
---|---|---|
! ГРЕШКА! неочакван оператор '=' | equals () е метод. | compareTo () е метод. |
! ГРЕШКА! неочакван оператор '=' | методът equals () прави сравнение на съдържанието. | compareTo () прави сравнението въз основа на стойността на ASCII. |
Типът на връщане е булев. | Типът на връщане е булев. | Типът на връщане е Integer. |
Той използва препратката към променливата String, така че адресите на паметта трябва да бъдат еднакви при сравняване. | Не изисква обектите да бъдат логически подредени. | Той изисква обектите да бъдат логично подредени. |
Ето пример за програмиране, илюстриращ разликата.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = new String('Testing'); String str2 = 'Testing'; System.out.println(str1.compareTo(str2)); System.out.println(str1 ==str2); System.out.println(str1.equals(str2)); } }
Изход:
В # 2) Чувства ли регистърът на Java метод сравнение ()?
Отговор: Да. Методът Java .compareTo () разглежда буквите на символите и е чувствителен към малки и големи букви.
По-долу е илюстрацията.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = 'Software'; String str2 = 'SOFTWARE'; System.out.println(str1.compareTo(str2)); } }
Изход:
c ++ недефинирана препратка към клас
Q # 3) Как функцията compareTo () работи в Java?
Отговор: Методът Java compareTo () всъщност сравнява ASCII стойностите на символите на низ.
Нека кажем, че ще сравним запетая и интервал, използвайки метода .compareTo (). Както знаем, интервал има ASCII стойност 32, докато запетая има ASCII стойност 44. Разликата между ASCII стойността на интервала и запетая е 12.
По-долу е даден пример за програмиране.
package codes; public class CompareTo { public static void main(String() args) { String str1 = ','; String str2 = ' '; System.out.println(str1.compareTo(str2)); } }
Изход:
В # 4) Как да намерим дължината на String с помощта на Java .compareTo () метод?
Отговор: По-долу е дадена програмата за намиране на дължината на низ с помощта на Java .compareTo () метода.
В този пример взехме един низ, чиято дължина трябва да намерим и празен низ. След това сравнихме String с празния String. Разликата между тях ще бъде дължината на струната.
package codes; public class CompareTo { public static void main(String() args) { String str1 = 'Tony Stark'; String str2 = ''; System.out.println(str1.compareTo(str2)); } }
Изход:
В # 5) Какво връща методът compareTo?
Отговор: Типът на връщане на метода Java compareTo () е цяло число. Целочислената стойност може да бъде нула, положително цяло число или отрицателно цяло число.
Заключение
В този урок разбрахме подробно метода Java String compareTo (). Основната функционалност, подробности за изпълнението и използването, особено примери за програмиране, бяха предоставени за по-добро разбиране на концепцията, свързана с метода String compareTo ().
Прочетете също = >> Java сравними и сравнителни интерфейси
Използвайки този метод, можете да сравните два низа и много други употреби или области на приложение, като например намирането на дължината на низа също е възможно с помощта на метода compareTo (), който е бил обхванат в често задаваните въпроси.
=> Посетете тук за ексклузивната серия уроци за обучение по Java.
Препоръчително четене
- Java урок за низове | Низови методи на Java с примери
- Метод за разделяне на низове в Java () - Как да разделите низ в Java
- Java String с урок за String Buffer и String Builder
- Функции на низовете на Python
- Java String Array - Урок с примери за кодове
- ListIterator интерфейс в Java с примери
- Урок за интерфейс на Java и абстрактен клас с примери
- OOP Java: Въведение в обектно-ориентираното програмиране в Java