logo

Lexikografický poriadok Java

Termín lexikografické poradie je matematický výraz známy pod názvami: lexikálne poradie, lexikografický (al) produkt, abecedné poradie alebo slovníkové poradie.

Táto časť sa bude zaoberať témou lexikografického poradia, jeho definíciou a ďalšími podrobnými informáciami. Potom sa naučíme, ako používať koncept lexikografického poriadku v programovací jazyk Java .

Definovanie lexikografického poriadku

Lexikografický poriadok alebo lexikografický v matematike je zovšeobecnením abecednej postupnosti slovníkov na postupnosti usporiadaných symbolov alebo prvkov úplne usporiadaného zoznamu. Pojem lexikografický poriadok je motivovaný slovom „lexikón“. Lexikón je množina slov používaných v niektorých iných jazykoch a má konvenčné usporiadanie. Lexikografický poriadok je teda spôsob, ako formalizovať slovosled, kde je dané poradie základných symbolov.

strsep

V programovaní je lexikografický poriadok ľudovo známy ako Poradie slovníka a používa sa na triedenie poľa reťazcov, porovnávanie dvoch reťazcov alebo triedenie prvkov poľa. Je celkom jednoduché lexikálne triediť prvky. Je to preto, že lexikografický poriadok má niekoľko variantov a zovšeobecnení, v ktorých:

  • Jeden variant je aplikovateľný na sekvencie rôznych dĺžok, pretože pred zvažovaním konkrétnych prvkov sa porovnávajú dĺžky sekvencií.
  • Druhý variant sa používa v poradí podmnožín danej konečnej množiny. Robí to priradením celkového poradia konečnej množine. Potom konvertuje podmnožiny na rastúce sekvencie, na ktoré sa aplikuje lexikografické poradie.
  • Zovšeobecnenie sa týka karteziánskej postupnosti súčinu čiastočne usporiadaných množín a takáto postupnosť je úplným poradím vtedy a len vtedy, ak je každý faktor karteziánskeho súčinu usporiadaný úplne.

Pochopenie formálneho pojmu lexikografického poriadku

  • Aby sme pochopili formálny pojem lexikografického poriadku:
  • Začína sa konečnou množinou A, ktorá je známa ako abeceda a je úplne zoradená. Ďalej to znamená, že pre a a b (akékoľvek dva symboly, ktoré sú rôzne a nie rovnaké) v A, buď a
  • Tu sú slová A konečnou postupnosťou symbolov z A a zahŕňajú slová dĺžky 1, ktoré obsahujú jeden symbol, slová dĺžky 2 dva symboly a pre slová dĺžky tri je to 3 atď. S pozdravom, obsahuje aj prázdnu sekvenciu ? nemá žiadne symboly. Takže lexikografické poradie pre konečnú množinu A možno opísať ako:
  • Predpokladajme, že pre dva rôzne svety rovnakej dĺžky a=a1a2…aka b=b1b2…bkje dané. Poradie dvoch slov tu závisí od abecedného poradia symbolov na prvom mieste i, kde sa dve slová menia pri počítaní od začiatku slov, t. j. spĺňajú podmienku a i i v poradí abecedy A.
  • Ak majú dve slová rôznu dĺžku, zvyčajné lexikografické poradie doplní slovo s kratšou dĺžkou medzerami na konci, kým obe slová nebudú mať rovnakú dĺžku, a potom sa slová porovnajú.

Implementácia lexikografického jazyka v jazyku Java

Ako bolo uvedené vyššie, lexikografické poradie možno použiť buď na porovnávanie dvoch reťazcov alebo triedenie prvkov. Tu budeme diskutovať o oboch metódach a budeme každú implementovať.

Triedenie prvkov v lexikografickom poradí

Usporiadanie slov v poradí je známe ako lexikografický poriadok alebo tiež známy ako Poradie slovníka . To znamená, že pri použití lexikografického poradia sú slová zoradené abecedne podľa jednotlivých abecedných prvkov. Na zoradenie poľa reťazcov v lexikografickom poradí máme nasledujúce dve metódy:

Metóda 1: Použitie akejkoľvek metódy triedenia

java localdate

Nižšie je uvedený príklad kódu, ktorý nám umožní pochopiť, ako môžeme vykonávať triedenie prvkov v lexikografickom poradí:

 public class Main { public static void main(String[] args) { String[] name = { &apos;John&apos;,&apos;Remo&apos;,&apos;Mixy&apos;,&apos;Julie&apos;,&apos;Ronny&apos;}; int n = 5; System.out.println(&apos;Before Sorting&apos;); for(int i = 0; i <n; i++) { system.out.println(name[i]); } for(int i="0;" < n-1; ++i) for (int j="i" + 1; 0) string temp="name[i];" name[i]="name[j];" name[j]="temp;" system.out.println('
after performing lexicographical order: '); n; pre> <p> <strong>Code Explanation:</strong> </p> <p>In the above code, we have created a class Main within which the main () method is created.</p> <ul> <li>A string has been initialized, holding some values to it, and each word will get printed as per for loop.</li> <li>Then, we have implemented the main logic within another for loop with the help of which we can form the lexicographical order of the words given.</li> <li>Finally, via for loop, the arranged words are printed on the screen.</li> </ul> <p> <strong>On executing the above example code, we got the following output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java.webp" alt="Lexicographical Order Java"> <p>From the output, we can analyze that the given sequence of the words was not in alphabetical order but after applying the lexicographical order code, we can see that every word is sequenced now in alphabetical order.</p> <p> <strong>Method 2: Applying sort () function</strong> </p> <p>The sort () method is available in the Arrays class within the util package.</p> <p>Below is the example code given that will let us understand that how we can perform sorting on elements in Lexicographical order:</p> <pre> import java.io.*; import java.util.Arrays; class Main { public static void printArray(String str[]) { for (String string : str) System.out.print(string + &apos; &apos;); System.out.println(); } public static void main(String[] args) { String arr[] = {&apos;John&apos;,&apos;Harry&apos;,&apos;Emlie&apos;,&apos;Ronny&apos;,&apos;Julie&apos;,&apos;Mary&apos; }; Arrays.sort(arr,String.CASE_INSENSITIVE_ORDER); printArray(arr); } } </pre> <p> <strong>On executing the above output, we got the below-shown output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-2.webp" alt="Lexicographical Order Java"> <h3>Comparing two strings using Lexicographical order in Java</h3> <p>For comparing two strings using Lexicographical order, we have the following two methods:</p> <p> <strong>Using compareTo () method</strong> </p> <p>Let&apos;s begin one by one:</p> <p> <strong>Using compareTo () method</strong> </p> <p>Below is an example implementation by which we can compare to strings lexicographically:</p> <pre> import java.lang.*; public class StringExample { public static void main(String[] args) { String str1 = &apos;String&apos;, str2 = &apos;Comparison&apos;; int get_val = str1.compareTo(str2); if (get_val <0) { system.out.println('str1 is greater than str2'); } else if (get_val="=" 0) equal to less < pre> <p> <strong>Code Explanation:</strong> </p> <ul> <li>We have created a class StringExample where we have implemented the main () method.</li> <li>We have initialized two strings, i.e., str1 and str2.</li> <li>Next, using the compareTo () method, we have compared the strings str1 and str2.</li> <li>After it, if the get_val value is found less than 0, it means str1 is greater than str2.</li> <li>Else if the get_val value is equal to 0, it means both str1 and str2 strings are equal.</li> <li>Else, both the strings str1 is less than str2.</li> </ul> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-3.webp" alt="Lexicographical Order Java"> <p> <strong>By creating a user-defined function</strong> </p> <p>Below we have created a user-defined function using which we can compare two strings lexicographically. The code is as follows:</p> <pre> public class StringExample { public static void main(String[] args) { String firstString = &apos;Red&apos;; String secondString = &apos;Red&apos;; String thirdString = &apos;Green&apos;; String fourthString = &apos;Yellow&apos;; String fifthString = &apos;REdGreen&apos;; System.out.println(&apos;Comparing two strings lexicographically by user defined function&apos;); System.out.print(&apos;
Compairing firstString (&apos;+firstString+&apos;) to the secondString (&apos;+secondString+&apos;) returns: &apos;); System.out.println(compareString(firstString, secondString)); System.out.print(&apos;
Compairing secondString (&apos;+secondString+&apos;) to the thirdString (&apos;+thirdString+&apos;) returns: &apos;); System.out.println(compareString(secondString, thirdString)); System.out.print(&apos;
Compairing thirdString (&apos;+thirdString+&apos;) to the fourthString (&apos;+fourthString+&apos;) returns: &apos;); System.out.println(compareString(thirdString, fourthString)); System.out.print(&apos;
Compairing fourthString (&apos;+fourthString+&apos;) to the firstString (&apos;+firstString+&apos;) returns: &apos;); System.out.println(compareString(fourthString, firstString)); System.out.print(&apos;
Compairing firstString (&apos;+firstString+&apos;) to the fifthString (&apos;+fifthString+&apos;) returns: &apos;); System.out.println(compareString(firstString, fifthString)); } public static int compareString(String str, String argString) { int lim= Math.min(str.length(), argString.length()); int k=0; while(k<lim) { if(str.charat(k)!="argString.charAt(k))" return (int) str.charat(k)- argstring.charat(k); } k++; str.length() - argstring.length(); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-4.webp" alt="Lexicographical Order Java"> <p> <strong>Code Explanation:</strong> </p> <ul> <li>We have created a Java class where we have initialized five strings.</li> <li>Next, we have compared the first string with the second string, the second to the third-string, and so on..</li> <li>For making the comparison, we have created a user-defined function compareString () whereby comparing the length and each character of the strings, and we got the results.</li> </ul> <p>Therefore, in this way, we can make use of the lexicographical order in Java for performing such tasks.</p> <hr></lim)></pre></0)></pre></n;>

Po vykonaní vyššie uvedeného výstupu sme dostali výstup uvedený nižšie:

Lexikografický poriadok Java

Porovnanie dvoch reťazcov pomocou lexikografického poradia v jazyku Java

Na porovnanie dvoch reťazcov pomocou lexikografického poradia máme tieto dve metódy:

Použitie metódy CompareTo ().

Začnime jeden po druhom:

Použitie metódy CompareTo ().

previesť reťazec na json java

Nižšie je uvedený príklad implementácie, pomocou ktorej môžeme lexikograficky porovnať reťazce:

 import java.lang.*; public class StringExample { public static void main(String[] args) { String str1 = &apos;String&apos;, str2 = &apos;Comparison&apos;; int get_val = str1.compareTo(str2); if (get_val <0) { system.out.println(\'str1 is greater than str2\'); } else if (get_val="=" 0) equal to less < pre> <p> <strong>Code Explanation:</strong> </p> <ul> <li>We have created a class StringExample where we have implemented the main () method.</li> <li>We have initialized two strings, i.e., str1 and str2.</li> <li>Next, using the compareTo () method, we have compared the strings str1 and str2.</li> <li>After it, if the get_val value is found less than 0, it means str1 is greater than str2.</li> <li>Else if the get_val value is equal to 0, it means both str1 and str2 strings are equal.</li> <li>Else, both the strings str1 is less than str2.</li> </ul> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-3.webp" alt="Lexicographical Order Java"> <p> <strong>By creating a user-defined function</strong> </p> <p>Below we have created a user-defined function using which we can compare two strings lexicographically. The code is as follows:</p> <pre> public class StringExample { public static void main(String[] args) { String firstString = &apos;Red&apos;; String secondString = &apos;Red&apos;; String thirdString = &apos;Green&apos;; String fourthString = &apos;Yellow&apos;; String fifthString = &apos;REdGreen&apos;; System.out.println(&apos;Comparing two strings lexicographically by user defined function&apos;); System.out.print(&apos;
Compairing firstString (&apos;+firstString+&apos;) to the secondString (&apos;+secondString+&apos;) returns: &apos;); System.out.println(compareString(firstString, secondString)); System.out.print(&apos;
Compairing secondString (&apos;+secondString+&apos;) to the thirdString (&apos;+thirdString+&apos;) returns: &apos;); System.out.println(compareString(secondString, thirdString)); System.out.print(&apos;
Compairing thirdString (&apos;+thirdString+&apos;) to the fourthString (&apos;+fourthString+&apos;) returns: &apos;); System.out.println(compareString(thirdString, fourthString)); System.out.print(&apos;
Compairing fourthString (&apos;+fourthString+&apos;) to the firstString (&apos;+firstString+&apos;) returns: &apos;); System.out.println(compareString(fourthString, firstString)); System.out.print(&apos;
Compairing firstString (&apos;+firstString+&apos;) to the fifthString (&apos;+fifthString+&apos;) returns: &apos;); System.out.println(compareString(firstString, fifthString)); } public static int compareString(String str, String argString) { int lim= Math.min(str.length(), argString.length()); int k=0; while(k<lim) { if(str.charat(k)!="argString.charAt(k))" return (int) str.charat(k)- argstring.charat(k); } k++; str.length() - argstring.length(); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-4.webp" alt="Lexicographical Order Java"> <p> <strong>Code Explanation:</strong> </p> <ul> <li>We have created a Java class where we have initialized five strings.</li> <li>Next, we have compared the first string with the second string, the second to the third-string, and so on..</li> <li>For making the comparison, we have created a user-defined function compareString () whereby comparing the length and each character of the strings, and we got the results.</li> </ul> <p>Therefore, in this way, we can make use of the lexicographical order in Java for performing such tasks.</p> <hr></lim)></pre></0)>